je suis en train de faire un tunnel pour me faire la main avec quelques fonctions, et j'ai quelques problèmes. Voici mon code:
include "tios.h"
include "graphlib.h"
xdef _main
xdef _ti89
_main:
move.w #0,D0
move.w #0,D1
move.w #159,D2
move.w #100,D3
move.w #2,D4
jsr graphlib::fill
move.w #59,D0
move.w #40,D2
move.w #1,D4
jsr graphlib::fill ;ça c'est juste pour tracer la piste
loop:
move.w #$700,-(A7)
jsr tios::OSSetSR
move.w #%1111110,$600018
nop
nop
nop
nop
nop
nop
move.b $60001b,D3
clr.w (A7)
jsr tios::OSSetSR
lea 2(A7),A7
btst.b #3,D3
beq droite
btst.b #1,D3
beq gauche ;là je veux savoir si on a appuyé sur droite ou gauche
move.w abcisse,D0
move.w #96,D1
move.w #8,D2
move.w #4,D3
move.w #1,D4
jsr graphlib::fill ;là c'est pas très propre, mais en fait je "voudrais (!)" faire un rectangle blanc à la place du
;ship pour l'effacer
move.w abcisse,D0
move.w #96,D1
lea (ship),A0
jsr graphlib:

ut_sprite ;j'affiche le ship
move.w #$700,-(A7)
jsr tios::OSSetSR
move.w #%00111111,$600018
nop
nop
nop
nop
nop
nop
move.b $60001b,D3
clr.w (A7)
jsr tios::OSSetSR
lea 2(A7),A7
btst.b #0,D3 ;je regarde si il y a esc
beq fin
bra loop
droite:
move.w #1,D0
add.w D0,abcisse
bra loop ;je voudrais que le vaisseau aille un cran à droite
gauche:
move.w #1,D0
sub.w D0,abcisse
bra loop ;et là un cran à gauche
fin:
rts
ship:
dc.w 4,1
dc.b %00011000
dc.b %00111100
dc.b %01100110
dc.b %00111100
abcisse: dc.w 77
end
L'affichage marche (mais ça défile pas encore, une chose à la fois!), la touche esc marche, mais pour les touches droite et gauche, ça fait n'importe quoi: le vaisseau se déplace aléatoirement en abcisse (et même en ordonée!!!!!!!!!!!!)
Pouvez-vous m'aider là-dessus?
Sinon, j'ai un peu de mal avec la fonction put_sprite de graphlib, parceque je ne sais pas me servir des masques.
Quel en est le principe, et comment faire avec graphlib svp?
Merci d'avance!