Shoot ... Again
n°21Par Dominique Pessan
|
FIREFLASH, encore un classique auquel il manquait la possibilité de jouer avec une manette de jeu. Mais comme tout vient à temps, à qui sait attendre... L'état des lieux. Un seul module , situé entre #2000 et #67FF. La gestion du clavier est elle, située en #20CC
La gestion du clavier. Très semblable à celle de RATSPLAT par exemple. Ici, c'est la case mémoire $07 qui sert "d'image" des touches pressées, suivant la logique suivante:
adresses col. touches effets bit de $7 valeur de $7 $20D0 #$FB <>> haut 7 #$80 $20BD #$F7 <.> bas 6 #$40 $20E8 #$FD <<> gauche 5 #$20 $20F5 #$7F <,> droite 4 #$10 $21E1 #$BF <Esp> tir 0 #$01 $212B #$FE <P> pause 1 #$02 $2138 #$DF <X> hyper sp 2 #$04 Les valeurs pour les positions intermédiaires comme "en bas ET à droite" par exemple, sont calculées en faisant un OU logique entre les valeurs bas et droite. Soit #$40 OU #$10 = #$50.
![]() |
La méthode utilisée. La même que pour RATSPLAT, à savoir remplacement des deux premières instructions du sous programme en $20CC par l'appel de notre routine de lecture de la manette. Méthode qui permet de conserver la gestion du clavier pour, entre autre, la Pause et l'hyper-Espace. Le calcul des différents OU pour les positions intermédiaires de la manette, nous a conduit à la table de lecture suivante.
$6860 : 00 00 00 00 00 90 A0 80
La marche à suivre. 1 - Entrez le listing suivant
10 A=#6800:F=#6870:L=100:REPEAT:FOR A=A TO A+15:READ C$20 K=VAL("#"+C$):S=S+K+65536*(S+K>65535):IF A<=F THEN POKE A,K 30 NEXT:READ D$:IF S=VAL("#"+D$) THEN L=L+5: UNTIL A>F:END 40 PING:PRINT"Erreur ligne";L 100DATA 98,48,AD,01,03,48,AD,03,03,48,A9,00,85,07,A9, C0,0572 105DATA 8D,03,03,A9,40,8D,01,03,AD,01,03,A8,29,20,AA, 98,0A63 110DATA 4A,29,0C,8D,2B,68,98,29,03,18,69,04,A8,B9,60, 68,0F74 115DATA 8D,5E,68,E0,20,F0,08,A2,01,8E,5F,68,4C,44,68, A2,1651 120DATA 00,8E,5F,68,68,8D,03,03,68,8D,01,03,68,A8,AD, 5F,1BB6 125DATA 68,0D,5E,68,85,07,60,00,00,00,00,00,00,00,00, 00,1DDD 130DATA 00,00,00,00,00,90,A0,80,00,50,60,40,00,10,20, 00,20AD 135DATA 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00, 00,20AD
2 - RUN 3 - FIFLASH ( le nom de votre programme ) 4 - POKE#20CC,#20:DOKE#20CD,#6800:POKE#20CF:#EA 10-SAVEU"FIFLASH",A#2000,E#6870,AUTO La gestion par le clavier est conservée et vous pouvez jouer avec la manette . Les interférences avec la gestion du son peuvent être pénibles sur ce jeu... Généralement, un petit coup de JS vers l'arrière fait cesser un bruit indésirable. A bientôt...
|
