1
Bonjour, je voulais savoir si qq connait un lien ou on explique comment bouger un sprite (avec ion si possible)?
Merci

confus
2
Tu efface l'ancienne position (à l'aide du même sprite que t'applique dessus, en changeant un paramètre) et tu retrace la nouvelle ?

Sinon, y'a surement moyen de traffiquer directement le buffer (l'adresse du) de l'écran, mais bon, j'y connais rien en z80 la-dessus, et c'est déjà d'un aute niveau.
3
hehe Seulement je commence a peine la prog en Z80, c'est pour ca que si tu me dit ca comme ca ca veut pas dire beaucoup de chose pour moi, un exemple un peu plus concret seurait le bien venu! roll

PS: c'est quoi le buffer SVP?? confus
4
Moi j'avais réussis à afficher une sprite mais pas à la faire bouger... C'est dur l'asm. En plus maintenant que j'ai reformater j'ai plus rien :'( !
5
Bha, je ne connais presque rien en asm z80, mais comme on fait pareil dans tous les langages...
Il faut que tu reussie à effacer ton sprite de la 1er position (tu utilse une fonction spécifique ou tu y vas à la main ?), et ensuite, tu n'a plus qu'a afficher de nouveau ton sprite, à la nouvelle position.

sinon, http://fr.wikipedia.org/wiki/Buffer
( en gros, ici, c'est une zone de mémoire où l'écran est écrit en bit.Tu peux te réprésenter ça comme un tebaleu de 0 et de 1, 0=éteint, 1=allumé. Sur certaines architectures [Ti 68k I,..], l'adresse de cet endroit est modifiable, ce qui est plutôt fun niveau programmation, notemment pour les scrooling, etc. )
6
>"Moi j'avais réussis à afficher une sprite mais pas à la faire bouger"

Idem pour moi: ya plein de tuto qui explique comment afficher un sprite, mais aucun ou on puisse faire bouger les sprites, par contre j'en ai trouvé 1 ou on peu faire bouger un pt, G essayer de faire un mix des deux mais ca a pas marché, sad C pour ca que je pose la question...


>"En plus maintenant que j'ai reformater j'ai plus rien :'( ! "

Tu veux dire que ta tout reformater sans faire de sauvegarde??? fou




Au fait si j'ai bien compris le buffer c'est la ou tt les registres sont stocké, C ca?
7
"Au fait si j'ai bien compris le buffer c'est la ou tt les registres sont stocké, C ca?"
nan
8
ok merci gni
9
Mais de rien.
Faire bouger un sprite , c'est pas si dur.
tu fais une routine directinput, pour voir si tu appuie sur les touches que tu veux pour faire bouger ton sprite,tu efface le graphbuffer buffer avec une routine "maison" à chaque boucle et tu affiche le sprite à chaque fois aussi, parcque si tu remet a chaque fois la nouvelle position sur l'ancienne, ça risque d'être lent. Pour le sprite, il te faut des coordonnées, donc tu définie des variables x_sprite et y_sprite de 8 bit de préférence, au début du programme par exemple. Il te reste plus qu'à ajouter ou soustraire 1 ou plus à tes variable pour les faire bouger. Un petit exemple vu mon explication foireuse grin

#define x_sprite saferam1
#define y_sprite saferam1+1

<<tu met ton header normal>>

        ld     a,10            'tu met
        ld     (x_sprite),a     'tes variables
        ld     (y_sprite),a     'au point que tu veux, ici 10
directinput:

        ld hl,plotsscreen          'routine qui 
	ld (hl),0                      ' efface le
	ld de,plotsscreen+1     'plotscreen, c'est -a-dire 
	ld bc,12*64-1             ' le graphbuffer
	ldir                            '

	ld	b,4                  '
	ld	a,(y_balle)       '   affiche ton sprite
	ld	l,a                   '
	ld	a,(x_balle)        '
	ld	ix,balle             '
	call	ionputsprite       '

	ld	a,$FF         '
	out	(1),a         '   
	ld	a,$FE         '
	out	(1),a         'routine de directinput, tu choisis les touches que tu veux scanner, j'ai pris
	in	a,(1)           ' haut et bas pour bouger le sprite de bas en haut , j'ai pas mis gauche droite expres
	bit	0,a              ' pour que tu le fasse, par contre, la touche gauche permet de quitter le jeu pour l'instant    
	call	z,bas          ' 
	bit	1,a              '
	call	z,quitter     ' 
	bit	3,a              ' 
	call	z,haut           '
        jp      directinput

bas:
      push   af                  ' met a dans la pile pour pouvoir continuer a faire marcher le directinput
      ld      a,(y_sprite)
      inc     a
      ld       (y_sprite),a
      pop     af                  'retire la valeur de la pile et la stoque dans a
      ret

haut:
      push   af                 
      ld      a,(y_sprite)
      dec    a
      ld       (y_sprite),a
      pop     af               
      ret

quitter:
       pop a
       ret


balle:
	.db	%01100000
	.db	%11110000
	.db	%11110000
	.db	%01100000


edit_very: rha ces jeunes :
edir glre : merci
top OUah Ca sent super bon tt ca! Merci, je vais essayer de me debrouiller avec ca!



...Au fait, C quoi le graph buffer?
Ce que j'ai expliqué plus haut ?
en gros, ici, c'est une zone de mémoire où l'écran est écrit en bit.Tu peux te réprésenter ça comme un tebaleu de 0 et de 1, 0=éteint, 1=allumé.
Ah d'accord, je commence a comprendre 1 peu mieu smile
le graphbuffer, c'est un zone de 768 octet, soit 96 * 64, les "dimension en pixel" de ton ecran de calculatrice. lorsque tu écris a cette adresse, par exemple, tu change le premier pixel en 1 (alors qu'il était) à zero, ça ne se verra sur l'écran que si tu fais un refresh, c'est-à-dire avec ion tu appelle la fonction "ionfastcopy" qui copie le graphbuffer à l'ecran. ("ifastcopy" avec mirage os).
Et aussi, tu verra que le graphbuffer se nomme aussi plootscreen.
Voila, bonne chance pour la programmation smile
Merci smile
bonjour, ou peut on telecharger des sprites? SVP MERCI
EUH, oui et non, disons que tu peux aller chercher dans les sources des jeux asm qui sont sur internet les sprites qui t'intéressent (un petit message de remerciement dans le lisez-moi de ton programme étant alors bien vu)... Mais il n'existe pas à ma connaissance de site proposant des sprites de TI déjà dessinés...