Page 1 of 1

TI-basic : Probléme graphique

Unread postPosted: 28 Oct 2014, 17:50
by piro
Salut tout le monde* , j'ai un petit problème comme dit dans le titre :
je suis actuellement en train de créer un propre jeu de plateau (style pokemon).
Pour afficher les objets du décors j'utilise les lines. Mais pour les personnages (ia et joueur) j'utilise les <<plot1, 2 et 3>> pour les bouger plus facilement. Malheureusement lorsque j'utilise <<Dispgraph>> tout les objets créés grâce a <<plot>> disparaissent une fraction de seconde et tout les objets créés avec <<line>> sont effacés de l'écran.

Serait-il possible d'avoir plus de 3 <<plot>> ?
Ou y aurait-il une autre astuce ?

Merci d'avance

*[Edit par AlexRider38: Merci d'écrire en français traditionnel et pas en SMS.]

Re: TI-basic : Probléme graphique

Unread postPosted: 28 Oct 2014, 18:02
by critor
Salut.


Effectivement, à chaque fois que tu modifies une liste utilisée par Plot1/2/3 ou une équation à tracer (Y1, Y2...), le prochain affichage de l'écran graphique commence par tout effacer.

Tu peux avoir autant de listes que tu veux (L1, L2, ..., L6 et tu peux créer également autant de variables listes que tu veux en préfixant leur nom par :f21: :f33: :f26: :f25: ).

Une solution pourrait être de ne pas confier le tracé des coordonnées de tes listes aux Plot1/2/3, mais d'avoir une mini boucle dans ton programme qui s'en charge, et qui elle pourra ne pas effacer l'écran.

Re: TI-basic : Probléme graphique

Unread postPosted: 28 Oct 2014, 18:07
by piro
Merci de la réponse rapide,
je ne vois pas se que tu veux dire par la mini boucle, aurais-tu un exemple simple ?
Si je n'utilise que des <<line>> comment je peux faire pour les faire apparaitre à l’écran avec leur nouvelles positions ? lors d'un mouvement par exemple.

Re: TI-basic : Probléme graphique

Unread postPosted: 28 Oct 2014, 18:15
by critor
Si j'ai bien compris, tu as des listes qui te décrivent des coordonnées permettant de dessiner un objet/personnage point à point.

Pour pouvoir faire le même dessin à une nouvelle position, il suffirait que ces coordonnées soient relatives à un point de départ connu du programme.
La liste décrirait alors un dessin relatif à un point de départ du tracé: allumer 2 pixels vers la droite, puis 3 pixels vers le bas...

Une autre solution peut-être plus simple : tu as le droit de faire des opérations sur des listes, et elles sont appliquées à tous leurs élements.

Si par exemple L1 et L2 décrivent les abscisses et ordonnées permettant de dessiner le joueur, et que tu souhaites déplacer le joueur vers le haut, la modification des coordonnées à tracer se fait en une ligne :
Code: Select all
L2+1->L2

Re: TI-basic : Probléme graphique

Unread postPosted: 28 Oct 2014, 18:28
by piro
Ok, merci.
Une dernière question, je sais que l'on peux utiliser <<xyline>> avec un <<plot>> mais pas avec un <<line>>
Saurais-tu comment faire pour facilité l'écriture d’une fonction <<line>>, pour ne pas a avoir à mettre chaque valeur.
-> Une solution qui serait plus simple que :

Code: Select all
:{...}->L1
:{[i]...[/i]}->L2
:
:line(L1(1),L2(1),L1(2),L2(2),L1(3),L2(3) ...

Re: TI-basic : Probléme graphique

Unread postPosted: 28 Oct 2014, 18:34
by critor
Justement, il faudrait une petite boucle dont on parlait plus haut, et que tu pourrais mettre dans un sous-programme à appeler :

Code: Select all
dim(L1)->N
L1(1)->Z
L2(1)->T
For(I,2,N)
    L1(I)->X
    L2(I)->Y
    line(X,Y,Z,T)
    X->Z
    Y->T
End

Re: TI-basic : Probléme graphique

Unread postPosted: 28 Oct 2014, 18:41
by critor
Encore plus simple avec une seule variable 'I' :

Code: Select all
For(I,2,dim(L1))
    line(L1(I),L2(I),L1(I-1),L2(I-1))
End


Cela supprime donc les effets de bord sur les autres variables qui restent ainsi disponibles pour une utilisation dans ton programme principal puisque leurs valeurs ne sont plus écrasées.