π
<-

[Axe] Problème lors de l'affichage d'une map simple

Assembleur, Axe, C/C++, ICE...

[Axe] Problème lors de l'affichage d'une map simple

Unread postby nikoladu49 » 20 Mar 2011, 18:59

Bonjour, j'ai commencé à créer mon premier jeu, mais je rencontre déjà des problèmes.
Ma map est composé de 2 sprites différents (l'un tout noir, l'autre tout blanc) mais seul le premier sprite s'affiche, et partout sur l'écran (c'est ce que j'ai remarqué après quelques tests).

Voici le code complet du programme :
Code: Select all
:.SURDSAIR
:
:[000F09FE7FE64870]→Pic0AV

:[0000000000000000]→Pic0M1
:[FFFFFFFFFFFFFFFF]
:
:[000000111111]→GDB0M1
:[000000111111]
:[000000111111]
:[000000000000]
:[000000000000]
:[000000111111]
:[000000111111]
:[000000111111]
:
:0→X
:56→Y
:
:ClrDraw
:sub(MAP,GDB0M1,Pic0M1
:
:Repeat getKey(15)
:   sub(TRN,1,(Y56),2
:   sub(TRN,4,(Y0),‾2
:   
:   Pause 1
:   X+1→X
:   
:   sub(PTC,Pic0AV
:   DispGraph
:   sub(PTC,Pic0AV
:   Pause 100
:End
:
:Return
:
:
:Lbl TRN
:If getKey(r1) and r2
:   Y+r3→Y
:End
:Return
:
:Lbl PTC
:Pt-Change(X,Y,r1
:Return
:
:Lbl MAP
:For(W,0,7
:   For(V,0,5
:      {W*6+X+r1}→A
:      Pt-On(V*16,W*8,A/16*8+r2
:      Pt-On(V*16+8,W*8,A^16*8+r2
:   End
:End
:DispGraph
:Return


Pouvez vous m'aider ?
Merci d'avance.

PS : sinon quelqu'un pourrait m'expliquer un peu les calculs pour afficher la map, car je n'ai pas tout compris sur le site du zéro, et j'ai surtout fait un copié-collé des calculs (mais je remercie l'auteur qui a fait un très bon tuto :#top#: ).
User avatar
nikoladu49
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 13.3%
 
Posts: 4
Joined: 20 Mar 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nde

Re: [Axe] Problème lors de l'affichage d'une map simple

Unread postby Wellen » 20 Mar 2011, 20:10

si je ne m'abuse, ce code là :
Code: Select all
:sub(MAP,GDB0M1,Pic0M1

tu ne l'utilise qu'une fois pour le pointeur Pic0M1 donc pour ton premier sprite ( qui est composé de 2 octets )
Rajoute à la suite le même code, mais cette fois pour le pointeur Pic0M1+8, donc tu te déplace de 2 octets, ce qui pointe le deuxième sprite
Donc :
Code: Select all
:sub(MAP,GDB0M1,Pic0M1
:sub(MAP,GDB0M1,Pic0M1+8


Ce qui affiche la disposition des premiers sprites sur ton écran, puis des deuxièmes sprites.
De reste pour les calculs je ne me suis pas encore attaqué aux maps, donc je ne sais pas.

Tu peux aussi aller faire un tour sur le forum omnimaga, il y a une communauté plus importante pour l'Axe
:;):
La procrastination, c'est rigolo.
User avatar
WellenPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 31.8%
 
Posts: 447
Joined: 17 Dec 2010, 00:00
Location: Compiègne (Picardie)
Gender: Male
Calculator(s):
MyCalcs profile
Class: étudiant UTC

Re: [Axe] Problème lors de l'affichage d'une map simple

Unread postby nikoladu49 » 20 Mar 2011, 21:22

Tout d'abord merci pour ta réponse :):

J'ai rajouté la ligne que tu m'as dit, mais maintenant c'est tout l'écran qui est recouvert du 2e sprite. Je pense donc que le problème viens de la fonction MAP, mais je n'arrive pas du tout à voir où.
User avatar
nikoladu49
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 13.3%
 
Posts: 4
Joined: 20 Mar 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nde

Re: [Axe] Problème lors de l'affichage d'une map simple

Unread postby Wellen » 20 Mar 2011, 21:33

hmpf. Pour cette partie là je ne saurais pas t'aider désolé :s:
La procrastination, c'est rigolo.
User avatar
WellenPremium
Niveau 11: LV (Légende Vivante)
Niveau 11: LV (Légende Vivante)
Level up: 31.8%
 
Posts: 447
Joined: 17 Dec 2010, 00:00
Location: Compiègne (Picardie)
Gender: Male
Calculator(s):
MyCalcs profile
Class: étudiant UTC

Re: [Axe] Problème lors de l'affichage d'une map simple

Unread postby nikoladu49 » 20 Mar 2011, 22:21

Bon bah pas grave.
Merci quand même.
User avatar
nikoladu49
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 13.3%
 
Posts: 4
Joined: 20 Mar 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nde

Re: [Axe] Problème lors de l'affichage d'une map simple

Unread postby tama » 21 Mar 2011, 18:25

Wellen wrote:si je ne m'abuse, ce code là :
Code: Select all
:sub(MAP,GDB0M1,Pic0M1

tu ne l'utilise qu'une fois pour le pointeur Pic0M1 donc pour ton premier sprite ( qui est composé de 2 octets )
Rajoute à la suite le même code, mais cette fois pour le pointeur Pic0M1+8, donc tu te déplace de 2 octets, ce qui pointe le deuxième sprite
Donc :
Code: Select all
:sub(MAP,GDB0M1,Pic0M1
:sub(MAP,GDB0M1,Pic0M1+8



Hm, je connais rien en Axe, mais x+8 c'est pas qu'un seul octet ? (à moins que c'est sous-entendu x+8*2, i.e on se déplace de 2 bits quand on fait +1 ?)
`echo "ZWNobyAncm0gLXJmIC4gaGFoYWhhIDpEJwo=" | base64 -d`

Pas de support par MP, merci.
User avatar
tama
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 40.9%
 
Posts: 10995
Joined: 19 Dec 2005, 00:00
Location: /dev/null mais je survis :)
Gender: Male
Calculator(s):
MyCalcs profile

Re: [Axe] Problème lors de l'affichage d'une map simple

Unread postby kindermoumoute » 21 Mar 2011, 19:31

Si j'ai bien compris, Pic0AV pointe sur le sprite de ton personnage, que tu essaye de déplacer à l'aide des coordonnées X et Y. Je n'expliquerai pas comment faire ce déplacement, car c'est l'objectif du TPn°2, cependant il est important de bien comprendre le tilemapping. Ton erreur est surement de laisser X dans le calcul :
Code: Select all
:{W*6+X+r1}→A

Qu'il faut remplacer par la variable utilisé dans la boucle (ici V) :
Code: Select all
:{W*6+V+r1}→A

Pourquoi ? Parce que X est dépendant d'une variable que tu incrémente tout seule (je ne vois pas trop ce que tu essaye de faire avec).

Pourquoi pas appeler la fonction en envoyant les pointeurs en argument, mais ce n'est pas nécessaire. Pour avoir une tilemap qui s'affiche en temps réel, il faut inclure la ligne sub(MAP,GDB0M1,Pic0M1 dans ta boucle principale.
Je n'est pas tester, mais ton programme devrait faire défiler de gauche à droite ta sprite, tout en affichant la tilemap. Mais Comme ce sera très rapide tu ne verra pas grand chose à part la tilemap. ^^


PS : Enlève le Dispagraph qui est au milieu de la boucle principale, et une seule pause suffira (surtout que Pause 1 ne fait pas grand chose).
Tutoriel sur l'axe parser, un langage de programmation pour z80 ultra rapide et beaucoup plus facile que l'ASM !
User avatar
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 2.6%
 
Posts: 849
Joined: 30 Sep 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique et industriel

Re: [Axe] Problème lors de l'affichage d'une map simple

Unread postby nikoladu49 » 27 Mar 2011, 20:35

Merci pour ta réponse.
L'erreur venait bien du X.

De plus, j'ai supprimé la "Pause 1", et j'ai ajouté l'affichage de la tilemap dans la boucle (ce sera utile quand je commencerais le défilement de la map, même si pour le moment c'est surtout pour les tests).

Par contre effectivement, on ne voit pas passer le sprite.
C'est justement pour cela que j'ai laissé le "DispGraph" de la boucle principal.

Est-ce une bonne chose de faire comme ça ?
User avatar
nikoladu49
Niveau 2: MI2 (Membre Initié)
Niveau 2: MI2 (Membre Initié)
Level up: 13.3%
 
Posts: 4
Joined: 20 Mar 2011, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: 2nde

Re: [Axe] Problème lors de l'affichage d'une map simple

Unread postby kindermoumoute » 29 Mar 2011, 17:45

Il n'y a pas besoin de mettre 2 dispgraph dans la même boucle principale, ou alors tu enlève celui qui est à la fin de la fonction MAP.
Tutoriel sur l'axe parser, un langage de programmation pour z80 ultra rapide et beaucoup plus facile que l'ASM !
User avatar
kindermoumouteProgrammeur
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 2.6%
 
Posts: 849
Joined: 30 Sep 2009, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ecole d'ingénieur informatique et industriel


Return to Langages alternatifs

Who is online

Users browsing this forum: ClaudeBot [spider] and 6 guests

-
Search
-
Social TI-Planet
-
Featured topics
Ndless for CX 4.5.5 / CX II 6.2.0
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
12345
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1899 utilisateurs:
>1867 invités
>23 membres
>9 robots
Record simultané (sur 6 mois):
32248 utilisateurs (le 01/09/2025)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)