Bonjour à tous,
je suis actuellement en dut informatique et j'ai un projet à faire : je dois réaliser un space invader.
Le but de ce jeu est de tirer sur des aliens pour les éliminer.
Je rencontre un probleme quant au déplacement de mes aliens : ce que je veux, c'est que mes aliens se déplace tout seul, sans que j'ai besoin d'appuyer sur une touche. J'ai donc penser à la fonction 01 de l'interruption 16, mais le problème est que dans mon buffer clavier s'enregistre la dernière touche sur laquelle j'ai appuyé, et je ne peux donc pas modifier les déplacements de mon vaisseau car il se déplace en fonction de la première touche sur laquelle j'ai appuyé. J'ai donc décider de vider le buffer de mon clavier pour palier ce problème. J'ai trouver une solution sur ce forum mais elle ne marche pas :
voici l'erreur :
Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 appuie_touche: ;teste de l'appuie de touches call affiche_aliens call vider_buffer mov ax,0100h int 16h cmp ax,011bh je fin cmp ax,4b00h je gauche cmp ax,4d00h je droite jmp boucle ;solution du forum vider_buffer: mov ax,0040h mov es,ax l.161 mov ax,es:[001Ah] l.162 mov es:[001ch],ax ret
l.161 error:invalid combinaison of opcode and operand
l.162 error:invalid combinaison of opcode and operand
Comment dois-je donc faire pour vider mon buffer clavier s'il vous plait?
Merci d'avance
cordialement
kyuubii_74
Partager