Omnimaga

Calculator Community => [FR] Section Francophone => [FR] Programmation Axe Parser => Topic started by: nikoladu49 on March 21, 2011, 04:07:23 am

Title: [Axe] Problème lors de l'affichage d'une map simple
Post by: nikoladu49 on March 21, 2011, 04:07:23 am
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 blanc, l'autre tout noir) 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]
:[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,(Y<56),2
:   sub(TRN,4,(Y>0),‾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
 

Je ne vois pas trop où est mon erreur.
Mais je pense qu'elle se situe dans la fonction MAP.

Merci d'avance.

PS : est-ce-que quelqu'un pourrait m'expliquer plus en détails les calculs qui sont faits pour afficher une map. Je n'ai pas trop compris sur le tutoriel du site du zéro (mais je remercie ces auteurs pour leur excellent travail :thumbsup:).
Title: Re: [Axe] Problème lors de l'affichage d'une map simple
Post by: mdr1 on March 22, 2011, 12:47:42 pm
Il y a déjà une première faute, là :
Code: [Select]
:      {W*6+X+r1}→ANe faut-il pas multiplier W par 8 ? Et puis pourquoi V n'intervient pas dans cette formule ?
Title: Re: [Axe] Problème lors de l'affichage d'une map simple
Post by: nikoladu49 on March 26, 2011, 09:35:22 am
Merci pour ta réponse.

Le problème venait de cette ligne là. J'ai mis X au lieu de V (erreur d'étourderie).
Par contre en multipliant W par 6 ça fonctionne.
Title: Re: [Axe] Problème lors de l'affichage d'une map simple
Post by: Kiligolo on March 26, 2011, 09:45:15 am
Il faut multiplier par huit car c'est des sprites 8x8 donc ça avance de huit en huit. Dans ce cas là ça ne ce voit pas car c'est des sprites en noir et blanc mais essaye ça avec d'autre sprites comme un smiley où quelque chose dans ce genre et tu verra.
Title: Re: [Axe] Problème lors de l'affichage d'une map simple
Post by: kindermoumoute on March 26, 2011, 10:06:00 am
Mais non, c'est bien par 6 qu'il faut multiplier, car l'écran fait 12*8 sprites. W est la largeur, et dans la tilemap 2 sprites sont stockés dans 1 octet, donc 12/2=6.
(C'est marqué dans mon tutoriel Kiligolo)
Comme un sprite fait 8 pixels * 8 pixels, à l'affichage on retrouve 12*8 et 8*8, soit les dimensions de l'écran : 96*64.
Title: Re: [Axe] Problème lors de l'affichage d'une map simple
Post by: Kiligolo on March 26, 2011, 01:53:44 pm
ah ok désolé :p
Title: Re: [Axe] Problème lors de l'affichage d'une map simple
Post by: mdr1 on March 27, 2011, 11:40:22 am
Merci pour ta réponse.

Le problème venait de cette ligne là. J'ai mis X au lieu de V (erreur d'étourderie).
Spoiler For Spoiler:
Et mon +1 ?  ;D
Title: Re: [Axe] Problème lors de l'affichage d'une map simple
Post by: kindermoumoute on March 27, 2011, 12:49:34 pm
Je te l'offre, mais j'avais déjà répondu à son problème sur TI-Bank. :p
Title: Re: [Axe] Problème lors de l'affichage d'une map simple
Post by: DJ Omnimaga on March 27, 2011, 02:26:30 pm
Au fait bienvenue sur le forum ;D
Title: Re: [Axe] Problème lors de l'affichage d'une map simple
Post by: nikoladu49 on March 27, 2011, 03:38:15 pm
kindermoumoute : oui c'est vrai. J'avais pas eu trop le temps pour tester les autres remarques que tu m'avais fait. J'ai répondu sur Ti Bank.

DJ_O : merci  :)