Gamme TI-82
Partager sur Facebook Fil RSS Imprimer la page
Cacher les résultats

Résultat de la recherche



Poster un nouveau sujet Poster une réponse
Matrice bloque deplacement ?
Auteur Message
Ggcool
Invité
Posté le : Mer 04 Mai 2011, 18:51   Citer 

Bonsoir, ce midi (ayant 2heures pour manger) un ami et moi avons décidé de commencer a programmer un programme (bah oui pas des patates =) qui fait qu'un curseur se deplace. Pas très intéressant hein ? Mais chuis débutant. Et je voulais faire que le curseur passe d'un ecran a un autre avec des decors differents, j'ai reussi. Mais ! Les decors, soit je passe au dessus du decors soit en dessous (depends de si j'affiche le decors avant ou après mon curseur) hors je voudrais que le curseur s’arrête contre le decors. (Ex: Je mets un 0 pour une pierre je voudrais que ca bloque le chemin)

Mon ami m'a dit qu'il fallait utiliser des matrices seulement j'y comprends rien il faudrait apparement que le matrice fasse 8*16 comme l'ecran de la TI et que a l'endroit ou il y'a le 0 il y'ait un 1 sur la matrice et que je fasse un code pour empecher si la matrice est égale a 1 (j'ai a peu près tout compris mais j'arrive pas a trouver le code pour ca) Merci par avance =)

  Haut de page Bas de page 
 
Persalteas



Autorisation : Membre
Nb de messages : 2176
Inscrit le : Sam 23 Jan 2010, 20:09
Posté le : Mer 04 Mai 2011, 21:05   Citer 

Euh oui, je veux bien t'expliquer mais pas ce soir, c'est compliqué les matrices.

Promis je t'explique dès que j'ai le temps, sauf si quelqu'un l'a fait avant moi.

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3774
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 04 Mai 2011, 21:22   Citer 


Code
Lbl 0

getKey->K
Y-(K=25)+(K=34->T
X-(K=24)+(K=26->S   //capte commande de déplacement + stockage provisoire
If not([A](T,S      //(le "not" revient à écrire "=0")
Then                //contenu executé seulement si prochaine case  =0
Output(Y,X," "
Output(T,S,"X
T->Y
S->X     //stocke les nouvelles coordonnées
End

Goto 0


L'essentiel est de stocker les prochaines coordonnées sans écraser les anciennes afin de tester la prochaine case. On n'effectue le déplacement que si le test est valide.

Méfie-toi des parenthèses fermantes : j'ai enlevé celles qui sont innutiles mais il faut les mettre quand il y a quelque chose après.


On peut écrire Z->[A](Y,X) pour remplir chaque case.
On peut éditer la matrice entière via le menu matrice>édit.
On peut lire une case de la matrice avec [A](Y,X)

second édit : j'ai croisé les stockages et affichages dans le If car ils n'étaient pas dans le bon ordre.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Google_AdSense



Publicité    



 
Akmdad
Avatar

Autorisation : Membre
Nb de messages : 726
Inscrit le : Mar 22 Jui 2010, 21:03
Posté le : Jeu 05 Mai 2011, 1:21   Citer 

... en faisant manuellement ta matrice avant évidemment.


et comme j'aime raconter ma vie, si tu veux qu'il y ait plusieurs "objets" qu'on ne peut pas traverser, alors tu classe tes objets en 2 parties
1 pour les objets "traversable" stoqués entre 1 et 50
1 pour les objets non "traversable" entre 51 et 99

et plus tard, dans le test, tu met
IF [A](T,S<51
then
transversable...
else
pas trans.
end

voilaaaa, c'est a peu pres ce que j'ai fait dans mon grand projet de RPG 68k

----------------------
retrouvez moi sur twitter!!!


j'ai une ti 82 stats fr et une ti89 titanium happy.gif
 Adresse email Haut de page Bas de page 
 
Ggcool
Invité
Posté le : Jeu 05 Mai 2011, 18:14   Citer 

Bon, j'ai pas vraiment compris les matrices ... On ma dit de mettre 1 pour les objets non traversables et 0 pour ceux qui sont traversables : ex: . = espace/+ = curseur/ - = objet non traversable

................
................
---.............
.......+........
---.............
................
................
................

Donc on m'a dit dans la matrice de faire ca :

0000000000000000
0000000000000000
1110000000000000
0000000000000000
1110000000000000
0000000000000000
0000000000000000
0000000000000000

Et que si dans la matrice c'etait egal a 1 alors c'etait pas possible d'y aller

(En attendant j'ai reussi a faire un truc mais ca marche que dans un sens si j'arrive de l'autre coté ca me téléporte de l'autre coté de la barrière (représentée par les moins))

J'ai fait :

If Y=3 et X<4:4->Y
If Y=5 et X<4:4->Y

Mais apres ... Si j'essaye de faire par exemple :

If Y=3 et X<4:2->Y

Ca me ramene en dessous de la barriere du haut ... C'est pour ca j'ai besoin des matrices (sinon j'fais un pokemon xD)

  Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3774
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Jeu 05 Mai 2011, 18:49   Citer 

Ce qu'Akmdad et moi avons écrit devrait suffir pour ton programme. Tu sembles ne pas les avoir lu.

Malgré tout je n'avais pas posté d'information générale sur la manipulation des matrices alors j'ai édité mon message.

Tu as compris le remplissage de la matrice.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Ggcool
Invité
Posté le : Ven 06 Mai 2011, 19:54   Citer 

Ben en fait j'avais pas compris et par conséquent pas testé >< Je viens de tester ca marche nikel =) J'vais pouvoir faire mon RPG (on verra plus tard pour les combats je fais des quêtes avec les connaissances que j'ai deja =) pour le moment j'ai reussi a demander d'aller a l'ecran suivant et de creuser a des coordonnées qui changent a chaque partie godgrace.gif )

  Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2016 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink
 

Site hébergé par Free Page sous licence creative commons Page validée par le W3C (XHTML 1.0 Transitional) Feuille de style validée par le W3C Flux RSS 2.0 valide Page étiquetée par l'ICRA Page testée par Ocawa