La Place des Développeurs [En cours] Scroll d'une map sur deux axes. Scroller une map MSX en utilisant deux techniques.
igal
Membre non connecté
Conseiller Municipal
Salut à tous.
Contrairement à la technique utilisée avec les scroll pour Space Manbow, je voudrais tabler sur une solution donnant une liberté totale de mouvement sur les axes "Horizontal et verticale" pour se promener librement sur une mappe importée par BMP2MSX puis transformée en Bribes.
La toute première étape consiste à segmenter la mappe:
Voici la mappe [Métal Gear 1 remake] de Pégase )
Tout d'abord l'original en .PNG
Voici la mappe découpée en segments de 256X212 et 256X44 toujours en PNG.
La prochaine étape consiste transformer ces images PNG en BMP pour ensuite les mouliner avec BMP2MSX pour obtenir des images en SCREEN8 256X212.
Les segments de 256X212 ainsi que les segments de 256X44 sortiront de BMP2MSX en image .SC8 mesurant toutes 256X212.
Il me restera alors à ne garder que les bribes qui contiennent les graphismes à savoir les 44 premières lignes des images qui contiennent les petits segments
@ Suivre (sans me presser )
Contrairement à la technique utilisée avec les scroll pour Space Manbow, je voudrais tabler sur une solution donnant une liberté totale de mouvement sur les axes "Horizontal et verticale" pour se promener librement sur une mappe importée par BMP2MSX puis transformée en Bribes.
La toute première étape consiste à segmenter la mappe:
Voici la mappe [Métal Gear 1 remake] de Pégase )
Tout d'abord l'original en .PNG
Voici la mappe découpée en segments de 256X212 et 256X44 toujours en PNG.
La prochaine étape consiste transformer ces images PNG en BMP pour ensuite les mouliner avec BMP2MSX pour obtenir des images en SCREEN8 256X212.
Les segments de 256X212 ainsi que les segments de 256X44 sortiront de BMP2MSX en image .SC8 mesurant toutes 256X212.
Il me restera alors à ne garder que les bribes qui contiennent les graphismes à savoir les 44 premières lignes des images qui contiennent les petits segments
@ Suivre (sans me presser )
igal
Membre non connecté
Conseiller Municipal
Manger la Pizza chez Jwar, ça met du baume au coeur
J'ai donc replongé les mains dans mon moteur de scroll Horizontal à commande "Droite et Gauche" et il est désormais parfaitement fonctionnel.
Il me reste à me pencher de nouveau sur le moteur de scroll Vertical à commande "Haut et Bas" et faire cohabiter le tout.
Pour le moment, le moteur utilise des "PAS" de huit pixels mais évidemment, on pourra descendre jusqu'à des "PAS" de 2 Pixels en Screen 5, Screen 8 et Screen 12.
Nb: pour le Screen 12, concernant le Scroll Horizontal, il est préférable de ne pas descendre en dessous d'un pas de 4 pour éviter le "tramage vertical" de l'image comme on peut le voir sur cette vidéo:
Voici un Scroll en Screen 12 par "Pas" de 2:
On voit bien que l'image scrollée présente une sorte de tramage verticale.
Nb: Seulement dans ce sens de déroulement du Scroll.
Tout est prêt pour un premier essais avec les décors de Métal Gear remake pour déplacer la mappe horizontalement sur commande de Droite à gauche et de gauche à droite simplement en appuyant sur les touches directionnelles
Vais voir si Pégase a travaillé sur l'image d'intro pour la mettre dans la tite démo Edité par igal Le 01/09/2016 à 18h21
J'ai donc replongé les mains dans mon moteur de scroll Horizontal à commande "Droite et Gauche" et il est désormais parfaitement fonctionnel.
Il me reste à me pencher de nouveau sur le moteur de scroll Vertical à commande "Haut et Bas" et faire cohabiter le tout.
Pour le moment, le moteur utilise des "PAS" de huit pixels mais évidemment, on pourra descendre jusqu'à des "PAS" de 2 Pixels en Screen 5, Screen 8 et Screen 12.
Nb: pour le Screen 12, concernant le Scroll Horizontal, il est préférable de ne pas descendre en dessous d'un pas de 4 pour éviter le "tramage vertical" de l'image comme on peut le voir sur cette vidéo:
Voici un Scroll en Screen 12 par "Pas" de 2:
On voit bien que l'image scrollée présente une sorte de tramage verticale.
Nb: Seulement dans ce sens de déroulement du Scroll.
Tout est prêt pour un premier essais avec les décors de Métal Gear remake pour déplacer la mappe horizontalement sur commande de Droite à gauche et de gauche à droite simplement en appuyant sur les touches directionnelles
Vais voir si Pégase a travaillé sur l'image d'intro pour la mettre dans la tite démo Edité par igal Le 01/09/2016 à 18h21
igal
Membre non connecté
Conseiller Municipal
voici donc le scroll Horizontal par "pas" de 8 pixels (Droite <=> Gauche) selon la commande du joueur
Vais en faire une autre avec PUT SPRITE qui affichera le "Hero" au centre de l'image.
Il reste voir le scroll vertical que je dois implanter dans ce même programme
Vais en faire une autre avec PUT SPRITE qui affichera le "Hero" au centre de l'image.
Il reste voir le scroll vertical que je dois implanter dans ce même programme
igal
Membre non connecté
Conseiller Municipal
Salut Éric.
J'avais fais un gros travail avec le scroll de megaman7 mais le moteur était buggé et des bribes erronées venaient s'intercaler par moment.
Cette fois, le problème définitivement est fixé
@pegase: c'est exactement ça.
L'image est découpée en colonne verticales larges de 8 pixels ce qui explique les "pas" de 8.
La difficulté est de faire cohabiter un scroll vertical et horizontal simultanément.
Je pense pouvoir y arriver mais ce sera pas facile
J'avais pensé à opter pour le positionnement fixe du héros en plein centre de l'écran.
De ce fait, il serait probablement plus facile de synchroniser les deux scrools.
Je verrai à tâtons
J'avais fais un gros travail avec le scroll de megaman7 mais le moteur était buggé et des bribes erronées venaient s'intercaler par moment.
Cette fois, le problème définitivement est fixé
@pegase: c'est exactement ça.
L'image est découpée en colonne verticales larges de 8 pixels ce qui explique les "pas" de 8.
La difficulté est de faire cohabiter un scroll vertical et horizontal simultanément.
Je pense pouvoir y arriver mais ce sera pas facile
J'avais pensé à opter pour le positionnement fixe du héros en plein centre de l'écran.
De ce fait, il serait probablement plus facile de synchroniser les deux scrools.
Je verrai à tâtons
igal
Membre non connecté
Conseiller Municipal
Programme du Jour:
Modifier le moteur pour déplacer le Scroll par pas de "4" en lieu et place de 8.
Avant de refaire une boulette, voici la dernière version du moteur de Scroll Horizontal:
Pour pouvoir scroller horizontalement et verticalement j'ai opté pour la solution suivante.
Lors d'un scroll Horizontal, le Héro est fixé "Horizontalement" au milieu de l'écran mais il est libre de déplacement Verticalement. Le héro peut donc quitter l'écran vers le haut ou le bas.
Si le héro quitte l'écran, le moteur bascule sur la boucle du scroll Vertical.
Lors d'un Scroll Vertical, le Héro est Fixé "Verticalement" au millieu de l'écran mais il est libre de déplacement Horizontalement. Le héro peut donc quitter l'écran vers la droite ou la Gauche.
Si le héro quitte l'écran, le moteur bascule sur la boucle du scroll Horizontal.
En gros, c'est l'approche qui permettrait de scroller horizontalement et verticalement avec un nombre de:
16 Bribes Horizontales + 16 Bribes verticales par page.
Soit 32 Bribes au total pour articuler horizontalement et verticalement une mappe de 256 X 256
Soit 256 Bribes pour une mappe de 512 X 512
Ou encore 1024 Bribes pour une mappe de 1024 X1024
Le tout utilisant la seule page [0] visible à l'écran ainsi que la partie réservée de cette même page. Edité par igal Le 04/09/2016 à 11h22
Modifier le moteur pour déplacer le Scroll par pas de "4" en lieu et place de 8.
Avant de refaire une boulette, voici la dernière version du moteur de Scroll Horizontal:
Code VB :
0 'SAVE"METAL001.asc",A 2 'PLAYER DE BRIBES VERICALES[(8 X 212)] 8 'Mode graphique 9 SCREEN 12:'COLOR1,1,0 12 'deplace l'écran verticalement 13 'VDP(24)=VDP(24)+212:VDP(9)=VDP(9)OR2 18 DEFINT A-Z:SETPAGE1,0:CLS:SETPAGE0,1:CLS 21 'Chargement intro/demo 25 SETPAGE0,1:BLOAD"INTRO.SCC",S:COLOR=RESTORE:SETPAGE1,0 26 IF INKEY$=""THEN26 27 'Chargement de la Page Alpha 28 CLS:SCREEN 8:CLS:CALL CHDIR("STAGE1") 29 CALL CHDIR("0") 30 SETPAGE0,1:BLOAD"0.SC8",S:SETPAGE1,0:SETPAGE0,0 35 'retour au repertoire des Pages 37 CALL CHDIR("..") 40 'initialisation des variables hero 45 X=100:Y=100:C=0 79 'CONDITIONS PRIMA X8************** 80 S=STICK(0):ONS+1 GOSUB 100,110,120,130,140,150,160,170,180:GOTO80 99 ' 100 'DIRECTION STATIQUE************* 102 RETURN 104 ' 110 'DIRECTION HAUT X8************** 112 RETURN 114 ' 120 'DIRECTION HAUT DROITE X8******* 122 RETURN 124 ' 130 'DIRECTION DROITE X8************ 131 'VA=0:'Scroll de droite a Droite 132 'VB=0:'Scroll de droite a Droite 133 D=1:VD=0:'Scroll vers la droite 134 I=&H2:'Repertoire Prima 135 II=&H1:'Repertoire des Bribes Prima 136 CALLCHDIR("1"):'Condition Proima droite 137 GOTO 10300:'Vers moteur X8 Droite 138 ' 140 'DIRECTION BAS DROITE X8******** 142 RETURN 144 ' 150 'DIRECTION BAS X8*************** 152 RETURN 154 ' 160 'DIRECTION BAS GAUCHE X8******** 162 RETURN 164 ' 170 'DIRECTION GAUCHE X8************ 171 'VA=256:'Scroll de droite a gauche 172 'VB=256:'Scroll de droite a gauche 173 G=1:VG=256:'Scroll vers la gauche 174 II=&HE:'Repertoire des Bribes Prima 175 I=&HE:'Repertoire Prima 176 CALLCHDIR("F"):'Condition Prima Gauche 177 GOTO 1300:'Vers moteur X8 Gauche 178 ' 180 'DIRECTION GAUCHE HAUT X8******* 182 RETURN 184 SCREEN 0:PRINT"SORTIE 184 185 ' 1300 'DIRECTION GAUCHE************ 1310 CALLCHDIR("F"):'SCROLL VERS LA GAUCHE 1320 S=STICK(0):ONS+1GOSUB100,110,120,1322,140,150,160,1324,180:GOTO1320 1322 G=1:I=I+3AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("0"):GOTO10324 1324 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1330 S=STICK(0):ONS+1GOSUB100,110,120,1332,140,150,160,1334,180:GOTO1330 1332 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("F"):GOTO11134 1334 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1350 CALL CHDIR ("..") 1360 CALLCHDIR("E"):'SCROLL VERS LA GAUCHE 1370 S=STICK(0):ONS+1GOSUB100,110,120,1372,140,150,160,1374,180:GOTO1370 1372 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("F"):GOTO11124 1374 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1380 S=STICK(0):ONS+1GOSUB100,110,120,1382,140,150,160,1384,180:GOTO1380 1382 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("E"):GOTO11034 1384 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1400 CALL CHDIR ("..") 1410 CALLCHDIR("D"):'SCROLL VERS LA GAUCHE 1420 S=STICK(0):ONS+1GOSUB100,110,120,1422,140,150,160,1424,180:GOTO1420 1422 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("E"):GOTO11024 1424 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1430 S=STICK(0):ONS+1GOSUB100,110,120,1432,140,150,160,1434,180:GOTO1430 1432 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("D"):GOTO10984 1434 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1450 CALL CHDIR ("..") 1460 CALLCHDIR("C"):'SCROLL VERS LA GAUCHE 1470 S=STICK(0):ONS+1GOSUB100,110,120,1472,140,150,160,1474,180:GOTO1470 1472 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("D"):GOTO10974 1474 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1480 S=STICK(0):ONS+1GOSUB100,110,120,1482,140,150,160,1484,180:GOTO1480 1482 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("C"):GOTO10934 1484 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1500 CALLCHDIR("..") 1510 CALLCHDIR("B"):'SCROLL VERS LA GAUCHE 1520 S=STICK(0):ONS+1GOSUB100,110,120,1522,140,150,160,1524,180:GOTO1520 1522 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("C"):GOTO10924 1524 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1530 S=STICK(0):ONS+1GOSUB100,110,120,1532,140,150,160,1534,180:GOTO1530 1532 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("B"):GOTO10884 1534 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1550 CALLCHDIR("..") 1560 CALLCHDIR("A"):'SCROLL VERS LA GAUCHE 1570 S=STICK(0):ONS+1GOSUB100,110,120,1572,140,150,160,1574,180:GOTO1570 1572 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("B"):GOTO10874 1574 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1580 S=STICK(0):ONS+1GOSUB100,110,120,1582,140,150,160,1584,180:GOTO1580 1582 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("A"):GOTO10834 1584 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1600 CALLCHDIR("..") 1610 CALLCHDIR("9"):'SCROLL VERS LA GAUCHE 1620 S=STICK(0):ONS+1GOSUB100,110,120,1622,140,150,160,1624,180:GOTO1620 1622 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("A"):GOTO10824 1624 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1630 S=STICK(0):ONS+1GOSUB100,110,120,1632,140,150,160,1634,180:GOTO1630 1632 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("9"):GOTO10784 1634 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1650 CALLCHDIR("..") 1660 CALLCHDIR("8"):'SCROLL VERS LA GAUCHE 1670 S=STICK(0):ONS+1GOSUB100,110,120,1672,140,150,160,1674,180:GOTO1670 1672 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("9"):GOTO10774 1674 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1680 S=STICK(0):ONS+1GOSUB100,110,120,1682,140,150,160,1684,180:GOTO1680 1682 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("8"):GOTO10734 1684 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1700 CALLCHDIR("..") 1710 CALLCHDIR("7"):'SCROLL VERS LA GAUCHE 1720 S=STICK(0):ONS+1GOSUB100,110,120,1722,140,150,160,1724,180:GOTO1720 1722 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("8"):GOTO10724 1724 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1730 S=STICK(0):ONS+1GOSUB100,110,120,1732,140,150,160,1734,180:GOTO1730 1732 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("7"):GOTO10684 1734 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1750 CALLCHDIR("..") 1760 CALLCHDIR("6"):'SCROLL VERS LA GAUCHE 1770 S=STICK(0):ONS+1GOSUB100,110,120,1772,140,150,160,1774,180:GOTO1770 1772 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("7"):GOTO10674 1774 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1780 S=STICK(0):ONS+1GOSUB100,110,120,1782,140,150,160,1784,180:GOTO1780 1782 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("6"):GOTO10634 1784 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1800 CALLCHDIR("..") 1810 CALLCHDIR("5"):'SCROLL VERS LA GAUCHE 1820 S=STICK(0):ONS+1GOSUB100,110,120,1822,140,150,160,1824,180:GOTO1820 1822 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("6"):GOTO10624 1824 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1830 S=STICK(0):ONS+1GOSUB100,110,120,1832,140,150,160,1834,180:GOTO1830 1832 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("5"):GOTO10584 1834 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1850 CALLCHDIR("..") 1860 CALLCHDIR("4"):'SCROLL VERS LA GAUCHE 1870 S=STICK(0):ONS+1GOSUB100,110,120,1872,140,150,160,1874,180:GOTO1870 1872 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("5"):GOTO10574 1874 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1880 S=STICK(0):ONS+1GOSUB100,110,120,1882,140,150,160,1884,180:GOTO1880 1882 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("4"):GOTO10534 1884 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1900 CALLCHDIR("..") 1910 CALLCHDIR("3"):'SCROLL VERS LA GAUCHE 1920 S=STICK(0):ONS+1GOSUB100,110,120,1922,140,150,160,1924,180:GOTO1920 1922 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("4"):GOTO10524 1924 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1930 S=STICK(0):ONS+1GOSUB100,110,120,1932,140,150,160,1934,180:GOTO1930 1932 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("3"):GOTO10484 1934 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1950 CALLCHDIR("..") 1960 CALLCHDIR("2"):'SCROLL VERS LA GAUCHE 1970 S=STICK(0):ONS+1GOSUB100,110,120,1972,140,150,160,1974,180:GOTO1970 1972 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("3"):GOTO10474 1974 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1980 S=STICK(0):ONS+1GOSUB100,110,120,1982,140,150,160,1984,180:GOTO1980 1982 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("2"):GOTO10434 1984 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 2000 CALLCHDIR("..") 2010 CALLCHDIR("1"):'SCROLL VERS LA GAUCHE 2020 S=STICK(0):ONS+1GOSUB100,110,120,2022,140,150,160,2024,180:GOTO2020 2022 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("2"):GOTO10424 2024 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 2030 S=STICK(0):ONS+1GOSUB100,110,120,2032,140,150,160,2034,180:GOTO2030 2032 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("1"):GOTO10384 2034 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 2050 CALLCHDIR("..") 2060 CALLCHDIR("0"):'SCROLL VERS LA GAUCHE 2070 S=STICK(0):ONS+1GOSUB100,110,120,2072,140,150,160,2074,180:GOTO2070 2072 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("1"):GOTO10374 2074 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 2080 S=STICK(0):ONS+1GOSUB100,110,120,2082,140,150,160,2084,180:GOTO2080 2082 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("0"):GOTO10334 2084 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 2090 IFD=1THENI=I-1AND&HF:D=0 2100 CALLCHDIR(".."):CALLCHDIR("..") 2580 'choix DU repertoire DES repertoires de Bribes 2582 IF I=&HFTHENCALLCHDIR("F"):I=&HE:GOTO1310 2584 IF I=&HETHENCALLCHDIR("E"):I=&HD:GOTO1310 2586 IF I=&HDTHENCALLCHDIR("D"):I=&HC:GOTO1310 2588 IF I=&HCTHENCALLCHDIR("C"):I=&HB:GOTO1310 2590 IF I=&HBTHENCALLCHDIR("B"):I=&HA:GOTO1310 2592 IF I=&HATHENCALLCHDIR("A"):I=&H9:GOTO1310 2594 IF I=&H9THENCALLCHDIR("9"):I=&H8:GOTO1310 2596 IF I=&H8THENCALLCHDIR("8"):I=&H7:GOTO1310 2598 IF I=&H7THENCALLCHDIR("7"):I=&H6:GOTO1310 2600 IF I=&H6THENCALLCHDIR("6"):I=&H5:GOTO1310 2602 IF I=&H5THENCALLCHDIR("5"):I=&H4:GOTO1310 2604 IF I=&H4THENCALLCHDIR("4"):I=&H3:GOTO1310 2606 IF I=&H3THENCALLCHDIR("3"):I=&H2:GOTO1310 2608 IF I=&H2THENCALLCHDIR("2"):I=&H1:GOTO1310 2610 IF I=&H1THENCALLCHDIR("1"):I=&H0:GOTO1310 2612 IF I=&H0THENCALLCHDIR("0"):I=&HF:GOTO1310 2613 ' 5299 'Repertoire des repertoires bascule Gauche vers la Droite 5300 IFD=1THENI=I-1AND&HF:D=0 5301 IFI=&HFTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("F"):RETURN 5302 IFI=&HETHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("E"):RETURN 5303 IFI=&HDTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("D"):RETURN 5304 IFI=&HCTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("C"):RETURN 5305 IFI=&HBTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("B"):RETURN 5306 IFI=&HATHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("A"):RETURN 5307 IFI=&H9THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("9"):RETURN 5308 IFI=&H8THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("8"):RETURN 5309 IFI=&H7THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("7"):RETURN 5310 IFI=&H6THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("6"):RETURN 5311 IFI=&H5THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("5"):RETURN 5312 IFI=&H4THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("4"):RETURN 5313 IFI=&H3THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("3"):RETURN 5314 IFI=&H2THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("2"):RETURN 5315 IFI=&H1THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("1"):RETURN 5316 IFI=&H0THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("0"):RETURN 10300 'DIRECTION DROITE************ 10310 CALLCHDIR("0"):'SCROLL VERS LA DROITE 10320 S=STICK(0):ONS+1GOSUB100,110,120,10324,140,150,160,10322,180:GOTO10320 10322 D=1:I=I-3AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("F"):GOTO1324 10324 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10330 S=STICK(0):ONS+1GOSUB100,110,120,10334,140,150,160,10332,180:GOTO10330 10332 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("0"):GOTO2084 10334 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10350 CALL CHDIR ("..") 10360 CALLCHDIR("1"):'SCROLL VERS LA DROITE 10370 S=STICK(0):ONS+1GOSUB100,110,120,10374,140,150,160,10372,180:GOTO10370 10372 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("0"):GOTO2074 10374 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10380 S=STICK(0):ONS+1GOSUB100,110,120,10384,140,150,160,10382,180:GOTO10380 10382 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("1"):GOTO2034 10384 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10400 CALL CHDIR ("..") 10410 CALLCHDIR("2"):'SCROLL VERS LA DROITE 10420 S=STICK(0):ONS+1GOSUB100,110,120,10424,140,150,160,10422,180:GOTO10420 10422 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("1"):GOTO2024 10424 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10430 S=STICK(0):ONS+1GOSUB100,110,120,10434,140,150,160,10432,180:GOTO10430 10432 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("2"):GOTO1984 10434 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10450 CALL CHDIR ("..") 10460 CALLCHDIR("3"):'SCROLL VERS LA DROITE 10470 S=STICK(0):ONS+1GOSUB100,110,120,10474,140,150,160,10472,180:GOTO10470 10472 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("2"):GOTO1974 10474 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10480 S=STICK(0):ONS+1GOSUB100,110,120,10484,140,150,160,10482,180:GOTO10480 10482 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("3"):GOTO1934 10484 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10500 CALL CHDIR ("..") 10510 CALLCHDIR("4"):'SCROLL VERS LA DROITE 10520 S=STICK(0):ONS+1GOSUB100,110,120,10524,140,150,160,10522,180:GOTO10520 10522 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("3"):GOTO1924 10524 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10530 S=STICK(0):ONS+1GOSUB100,110,120,10534,140,150,160,10532,180:GOTO10530 10532 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("4"):GOTO1884 10534 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10550 CALL CHDIR ("..") 10560 CALLCHDIR("5"):'SCROLL VERS LA DROITE 10570 S=STICK(0):ONS+1GOSUB100,110,120,10574,140,150,160,10572,180:GOTO10570 10572 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("4"):GOTO1874 10574 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10580 S=STICK(0):ONS+1GOSUB100,110,120,10584,140,150,160,10582,180:GOTO10580 10582 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("5"):GOTO1834 10584 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10600 CALL CHDIR ("..") 10610 CALLCHDIR("6"):'SCROLL VERS LA DROITE 10620 S=STICK(0):ONS+1GOSUB100,110,120,10624,140,150,160,10622,180:GOTO10620 10622 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("5"):GOTO1824 10624 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10630 S=STICK(0):ONS+1GOSUB100,110,120,10634,140,150,160,10632,180:GOTO10630 10632 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("6"):GOTO1784 10634 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10650 CALL CHDIR ("..") 10660 CALLCHDIR("7"):'SCROLL VERS LA DROITE 10670 S=STICK(0):ONS+1GOSUB100,110,120,10674,140,150,160,10672,180:GOTO10670 10672 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("6"):GOTO1774 10674 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10680 S=STICK(0):ONS+1GOSUB100,110,120,10684,140,150,160,10682,180:GOTO10680 10682 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("7"):GOTO1734 10684 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10700 CALL CHDIR("..") 10710 CALLCHDIR("8"):'SCROLL VERS LA DROITE 10720 S=STICK(0):ONS+1GOSUB100,110,120,10724,140,150,160,10722,180:GOTO10720 10722 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("7"):GOTO1724 10724 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10730 S=STICK(0):ONS+1GOSUB100,110,120,10734,140,150,160,10732,180:GOTO10730 10732 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("8"):GOTO1684 10734 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10750 CALL CHDIR ("..") 10760 CALLCHDIR("9"):'SCROLL VERS LA DROITE 10770 S=STICK(0):ONS+1GOSUB100,110,120,10774,140,150,160,10772,180:GOTO10770 10772 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("8"):GOTO1674 10774 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10780 S=STICK(0):ONS+1GOSUB100,110,120,10784,140,150,160,10782,180:GOTO10780 10782 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("9"):GOTO1634 10784 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10800 CALL CHDIR ("..") 10810 CALLCHDIR("A"):'SCROLL VERS LA DROITE 10820 S=STICK(0):ONS+1GOSUB100,110,120,10824,140,150,160,10822,180:GOTO10820 10822 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("9"):GOTO1624 10824 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10830 S=STICK(0):ONS+1GOSUB100,110,120,10834,140,150,160,10832,180:GOTO10830 10832 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("A"):GOTO1584 10834 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10850 CALL CHDIR ("..") 10860 CALLCHDIR("B"):'SCROLL VERS LA DROITE 10870 S=STICK(0):ONS+1GOSUB100,110,120,10874,140,150,160,10872,180:GOTO10870 10872 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("A"):GOTO1574 10874 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10880 S=STICK(0):ONS+1GOSUB100,110,120,10884,140,150,160,10882,180:GOTO10880 10882 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("B"):GOTO1534 10884 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10900 CALL CHDIR ("..") 10910 CALLCHDIR("C"):'SCROLL VERS LA DROITE 10920 S=STICK(0):ONS+1GOSUB100,110,120,10924,140,150,160,10922,180:GOTO10920 10922 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("B"):GOTO1524 10924 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10930 S=STICK(0):ONS+1GOSUB100,110,120,10934,140,150,160,10932,180:GOTO10930 10932 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("C"):GOTO1484 10934 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10950 CALL CHDIR ("..") 10960 CALLCHDIR("D"):'SCROLL VERS LA DROITE 10970 S=STICK(0):ONS+1GOSUB100,110,120,10974,140,150,160,10972,180:GOTO10970 10972 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("C"):GOTO1474 10974 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10980 S=STICK(0):ONS+1GOSUB100,110,120,10984,140,150,160,10982,180:GOTO10980 10982 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("D"):GOTO1434 10984 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11000 CALL CHDIR ("..") 11010 CALLCHDIR("E"):'SCROLL VERS LA DROITE 11020 S=STICK(0):ONS+1GOSUB100,110,120,11024,140,150,160,11022,180:GOTO11020 11022 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("D"):GOTO1424 11024 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11030 S=STICK(0):ONS+1GOSUB100,110,120,11034,140,150,160,11032,180:GOTO11030 11032 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("E"):GOTO1384 11034 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11050 CALL CHDIR ("..") 11110 CALLCHDIR("F")'SCROLL VERS LA DROITE 11120 S=STICK(0):ONS+1GOSUB100,110,120,11124,140,150,160,11122,180:GOTO11120 11122 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("E"):GOTO1374 11124 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11130 S=STICK(0):ONS+1GOSUB100,110,120,11134,140,150,160,11132,180:GOTO11130 11132 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("F"):GOTO1334 11134 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11140 IFG=1THENI=I+1AND&HF:G=0 11150 CALL CHDIR (".."):CALL CHDIR ("..") 12580 'choix DU repertoire DES repertoires de Bribes 12582 IF I=&HFTHENCALLCHDIR("F"):I=&H0:GOTO10310 12584 IF I=&HETHENCALLCHDIR("E"):I=&HF:GOTO10310 12586 IF I=&HDTHENCALLCHDIR("D"):I=&HE:GOTO10310 12588 IF I=&HCTHENCALLCHDIR("C"):I=&HD:GOTO10310 12590 IF I=&HBTHENCALLCHDIR("B"):I=&HC:GOTO10310 12592 IF I=&HATHENCALLCHDIR("A"):I=&HB:GOTO10310 12594 IF I=&H9THENCALLCHDIR("9"):I=&HA:GOTO10310 12596 IF I=&H8THENCALLCHDIR("8"):I=&H9:GOTO10310 12598 IF I=&H7THENCALLCHDIR("7"):I=&H8:GOTO10310 12600 IF I=&H6THENCALLCHDIR("6"):I=&H7:GOTO10310 12602 IF I=&H5THENCALLCHDIR("5"):I=&H6:GOTO10310 12604 IF I=&H4THENCALLCHDIR("4"):I=&H5:GOTO10310 12606 IF I=&H3THENCALLCHDIR("3"):I=&H4:GOTO10310 12608 IF I=&H2THENCALLCHDIR("2"):I=&H3:GOTO10310 12610 IF I=&H1THENCALLCHDIR("1"):I=&H2:GOTO10310 12612 IF I=&H0THENCALLCHDIR("0"):I=&H1:GOTO10310 12613 ' 20299 'Repertoire des repertoires bascule Droite vers Gauche 20300 IFG=1THENI=I+1AND&HF:G=0 20301 IFI=&H0THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("0"):RETURN 20302 IFI=&H1THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("1"):RETURN 20303 IFI=&H2THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("2"):RETURN 20304 IFI=&H3THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("3"):RETURN 20305 IFI=&H4THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("4"):RETURN 20306 IFI=&H5THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("5"):RETURN 20307 IFI=&H6THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("6"):RETURN 20308 IFI=&H7THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("7"):RETURN 20309 IFI=&H8THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("8"):RETURN 20310 IFI=&H9THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("9"):RETURN 20311 IFI=&HATHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("A"):RETURN 20312 IFI=&HBTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("B"):RETURN 20313 IFI=&HCTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("C"):RETURN 20314 IFI=&HDTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("D"):RETURN 20315 IFI=&HETHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("E"):RETURN 20316 IFI=&HFTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("F"):RETURN
Code VB :
10 'SAVE"GENOUTV8.ASC",A 20 'generateur de bribes Verticales d'images en 8 X 212. 22 'generateur par copy de bribes verticales. 30 ' Mode Graphique utilisé 32 VDP(10)=0: SCREEN 8 70 'Charger image ZERO [256X212] depuis la ligne Zero vers la page Zero. 71 SETPAGE 0,0: CLS 72 ' 76 'Entrer dans le repertoire STAGE1 prealablement cree. 77 'A l interieur de STAGE1 doivent se trouver les repertoires 0.1.2.3 avec les images .SC8 respectives 78 CALL CHDIR("STAGE1") 79 CALL CHDIR("0"):BLOAD"0.SC8",S 80 ' 81 A=0:'debut de copy 89 Z=211:'fin de copy 90 'Creer repertoires de 0 a F et y générer 2 bribes Larges de 8 lignes. 100 CALL MKDIR ("0"):CALL CHDIR ("0") 101 COPY(0,A)-(7,Z),0TO"111" 105 COPY(8,A)-(15,Z),0TO"115" 109 CALL CHDIR ("..") 110 CALL MKDIR ("1"):CALL CHDIR ("1") 111 COPY(16,A)-(23,Z),0TO"111" 115 COPY(24,A)-(31,Z),0TO"115" 119 CALL CHDIR ("..") 120 CALL MKDIR ("2"):CALL CHDIR ("2") 121 COPY(32,A)-(39,Z),0TO"111" 125 COPY(40,A)-(47,Z),0TO"115" 129 CALL CHDIR ("..") 130 CALL MKDIR ("3"):CALL CHDIR ("3") 131 COPY(48,A)-(55,Z),0TO"111" 135 COPY(56,A)-(63,Z),0TO"115" 139 CALL CHDIR ("..") 140 CALL MKDIR ("4"):CALL CHDIR ("4") 141 COPY(64,A)-(71,Z),0TO"111" 145 COPY(72,A)-(79,Z),0TO"115" 149 CALL CHDIR ("..") 150 CALL MKDIR ("5"):CALL CHDIR ("5") 151 COPY(80,A)-(87,Z),0TO"111" 155 COPY(88,A)-(95,Z),0TO"115" 159 CALL CHDIR ("..") 160 CALL MKDIR ("6"):CALL CHDIR ("6") 161 COPY(96,A)-(103,Z),0TO"111" 165 COPY(104,A)-(111,Z),0TO"115" 169 CALL CHDIR ("..") 170 CALL MKDIR ("7"):CALL CHDIR ("7") 171 COPY(112,A)-(119,Z),0TO"111" 175 COPY(120,A)-(127,Z),0TO"115" 179 CALL CHDIR ("..") 180 CALL MKDIR ("8"):CALL CHDIR ("8") 181 COPY(128,A)-(135,Z),0TO"111" 185 COPY(136,A)-(143,Z),0TO"115" 189 CALL CHDIR ("..") 190 CALL MKDIR ("9"):CALL CHDIR ("9") 191 COPY(144,A)-(151,Z),0TO"111" 195 COPY(152,A)-(159,Z),0TO"115" 199 CALL CHDIR ("..") 200 CALL MKDIR ("A"):CALL CHDIR ("A") 201 COPY(160,A)-(167,Z),0TO"111" 205 COPY(168,A)-(175,Z),0TO"115" 209 CALL CHDIR ("..") 210 CALL MKDIR ("B"):CALL CHDIR ("B") 211 COPY(176,A)-(183,Z),0TO"111" 215 COPY(184,A)-(191,Z),0TO"115" 219 CALL CHDIR ("..") 220 CALL MKDIR ("C"):CALL CHDIR ("C") 221 COPY(192,A)-(199,Z),0TO"111" 225 COPY(200,A)-(207,Z),0TO"115" 229 CALL CHDIR ("..") 230 CALL MKDIR ("D"):CALL CHDIR ("D") 231 COPY(208,A)-(215,Z),0TO"111" 235 COPY(216,A)-(223,Z),0TO"115" 239 CALL CHDIR ("..") 240 CALL MKDIR ("E"):CALL CHDIR ("E") 241 COPY(224,A)-(231,Z),0TO"111" 245 COPY(232,A)-(239,Z),0TO"115" 249 CALL CHDIR ("..") 250 CALL MKDIR ("F"):CALL CHDIR ("F") 251 COPY(240,A)-(247,Z),0TO"111" 255 COPY(248,A)-(255,Z),0TO"115" 259 CALL CHDIR ("..") 300 CALL CHDIR (".."):CALL CHDIR ("..")
Pour pouvoir scroller horizontalement et verticalement j'ai opté pour la solution suivante.
Lors d'un scroll Horizontal, le Héro est fixé "Horizontalement" au milieu de l'écran mais il est libre de déplacement Verticalement. Le héro peut donc quitter l'écran vers le haut ou le bas.
Si le héro quitte l'écran, le moteur bascule sur la boucle du scroll Vertical.
Lors d'un Scroll Vertical, le Héro est Fixé "Verticalement" au millieu de l'écran mais il est libre de déplacement Horizontalement. Le héro peut donc quitter l'écran vers la droite ou la Gauche.
Si le héro quitte l'écran, le moteur bascule sur la boucle du scroll Horizontal.
En gros, c'est l'approche qui permettrait de scroller horizontalement et verticalement avec un nombre de:
16 Bribes Horizontales + 16 Bribes verticales par page.
Soit 32 Bribes au total pour articuler horizontalement et verticalement une mappe de 256 X 256
Soit 256 Bribes pour une mappe de 512 X 512
Ou encore 1024 Bribes pour une mappe de 1024 X1024
Le tout utilisant la seule page [0] visible à l'écran ainsi que la partie réservée de cette même page. Edité par igal Le 04/09/2016 à 11h22
si tu veux vraiment scroller autour du sprite il faut déplacer la page dès que le personnage bouge et ne jamais atteindre un bord de l'écran
sinon c'est juste un scroll entre deux écran pour ne pas avoir une apparition brutale
sinon c'est juste un scroll entre deux écran pour ne pas avoir une apparition brutale
igal
Membre non connecté
Conseiller Municipal
@jipe.
En fait je vois la chose de la façon suivante.
Si le premier déplacement du héros est horizontal alors le moteur de scroll horizontal devient actif et donc le héros reste figé horizontalement dans le screen qui déroule horizontalement mais le héros reste libre de se déplacer dans l'écran verticalement.
Inversement...
Si le premier déplacement du héros est vertical alors le moteur de scroll vertical devient actif et donc le héros restera figé dès qu'il atteindra le point central de l'écran à la suite de quoi, le scroll se mettra en marche. Cette fois, le héros pourra se déplacer librement horizontalement à l'écran et si il sort du screen par la droite ou la gauche, on revient sur le moteur horizontal.
Je reviens sur ton propos pour apporter la précision suivante.
J'ai prévu d'identifier à chaque instant la position X, Y du héros sur le plan global de la map.
Cela me permettra de positionner le héros sur la page nouvellement affichée à chaque démarrage de scroll.
Les démarrages de scroll [transition de scroll V a H ou encorr H a V]se font toujours par des pages pleines et entières.
Cela nécessite donc de rester le héros à la bonne coordonnée de sorte à rester cohérent dans l'emplacement de décors anciennement scrollé et la page de départ qui va s'afficher.
Je ne sais pas du tout ce que cela donnera au niveau du game play mais j'ai pas trouvé d'autres solutions simple (hum). Toutes les approches que j'ai envisagées autrement nécessitent la création de plusieurs milliers de bribes
Si tu as une idée, je suis intéressé Edité par igal Le 05/09/2016 à 05h46
En fait je vois la chose de la façon suivante.
Si le premier déplacement du héros est horizontal alors le moteur de scroll horizontal devient actif et donc le héros reste figé horizontalement dans le screen qui déroule horizontalement mais le héros reste libre de se déplacer dans l'écran verticalement.
Inversement...
Si le premier déplacement du héros est vertical alors le moteur de scroll vertical devient actif et donc le héros restera figé dès qu'il atteindra le point central de l'écran à la suite de quoi, le scroll se mettra en marche. Cette fois, le héros pourra se déplacer librement horizontalement à l'écran et si il sort du screen par la droite ou la gauche, on revient sur le moteur horizontal.
Je reviens sur ton propos pour apporter la précision suivante.
J'ai prévu d'identifier à chaque instant la position X, Y du héros sur le plan global de la map.
Cela me permettra de positionner le héros sur la page nouvellement affichée à chaque démarrage de scroll.
Les démarrages de scroll [transition de scroll V a H ou encorr H a V]se font toujours par des pages pleines et entières.
Cela nécessite donc de rester le héros à la bonne coordonnée de sorte à rester cohérent dans l'emplacement de décors anciennement scrollé et la page de départ qui va s'afficher.
Je ne sais pas du tout ce que cela donnera au niveau du game play mais j'ai pas trouvé d'autres solutions simple (hum). Toutes les approches que j'ai envisagées autrement nécessitent la création de plusieurs milliers de bribes
Si tu as une idée, je suis intéressé Edité par igal Le 05/09/2016 à 05h46
igal
Membre non connecté
Conseiller Municipal
Jipe:
Salut Jipe:
Au prime abord, ce que tu dis semble juste mais en y regardant de plus près, on peut voir que Zelda (SNES) utilise une approche intermédiaire entre le [Sprite Fixe au centre de l'écran] et le [Sprite libre qui se atteint systématiquement les bords].
Voici en image:
On voit que par moment, le Héro "décroche" du centre pour se déplacer à vers l'une des 8 directions.
Soit vers la:
Haut
Haut Droite
Droite
Droite Bas
Bas
Bas Gauche
Gauche
Gauche Haut.
L’intérêt de cette approche est la suivante:
Puisque ma méthode par "pas de 8 pixels" nécessite
32 [Bribe d'image Verticale pour les déplacement Droite et Gauche]
32 [Bribe d'image Horizontale pour les déplacements Haut et Bas]
En l'état, le seul et unique moyen de rester synchronisé lors d'un déplacement Vertical à un déplacement horizontal implique de se trouver OBLIGATOIREMENT au CENTRE de l'image native.
Autrement dit, lors d'un changement d'axe directionnel (Haut ou bas vers droite ou gauche, ou encore Droite ou Gauche vers Haut ou bas) l'affichage des bribes d'images "Verticale" et "horizontal" resteront cohérent SEULEMENT si le changement de direction se fait lors de l'affichage de la bribe 16!
Vous l'aurez compris, changer d'axe de déplacement seulement toutes les 16 bribes limite vachement l’intérêt du moteur.
La bonne nouvelle est que je pense (j'en suis sûr) avec trouvé la solution
Comme vous pouvez le voir sur la vidéo de Zelda, le héro ne reste pas figé au centre de l'image sans pour autant gâcher le plaisir du jeu et le gameplay reste très intéressant.
Alors voilà:
Puisque mon moteur ne permet de changer d'axe de Scroll toutes les 16 Bribes seulement, (de centre V en Centre H), il suffit de "libérer le héro" lorsque ce dernier change d'axe de déplacement.
Je m'explique:
1) Le héro se trouve sur une bribe autre que 16.
2) Le joueur décide de changer d'axe de déplacement. (H vers V ou V vers H)
3) Le programme libère le héro du centre de l'écran qui se promène librement dans l'image affichée fixement.
4a) Le héro "marche de nouveau" sur la Bribes 16 => remise en branle du scroll Vertical ou horizontal à volonté! => Retour à un scroll Normal.
4b) Le héro "marche" sur une bribe 32 (donc bord natif haut ou Bas des bribes H ou V)
5) Extinction de l'image
6) chargement du bloc de bribe correspondant au déplacement H ou V selon l'étape 4b
7) Le héro continue a se déplacer librement depuis le Bord de l'écran qui correspond dorénavant au bord de la bribe jusqu'à ce qu'il atteint la Bribe 16 => Retour à un scroll Normal.
On a donc en tout et pour tout, 64 Bribes permettant scroller à souhait (par pas de 8 pixels) dans les 4 points cardinaux une image de 256X256 en SCREEN8
L'autre bonne nouvelle est que je pense avoir trouvé la solution pour scrollé en Diagonal.
Mais je vous expliquerai ça une prochaine fois.
Le point négatif est que je vais devoir "contracter" le programme pour avoir la place de implémenter les commandes permettant le scroll Vertical.
Ca va être un casse tète je pense
si tu veux vraiment scroller autour du sprite il faut déplacer la page dès que le personnage bouge et ne jamais atteindre un bord de l'écran
sinon c'est juste un scroll entre deux écran pour ne pas avoir une apparition brutale
sinon c'est juste un scroll entre deux écran pour ne pas avoir une apparition brutale
Salut Jipe:
Au prime abord, ce que tu dis semble juste mais en y regardant de plus près, on peut voir que Zelda (SNES) utilise une approche intermédiaire entre le [Sprite Fixe au centre de l'écran] et le [Sprite libre qui se atteint systématiquement les bords].
Voici en image:
On voit que par moment, le Héro "décroche" du centre pour se déplacer à vers l'une des 8 directions.
Soit vers la:
Haut
Haut Droite
Droite
Droite Bas
Bas
Bas Gauche
Gauche
Gauche Haut.
L’intérêt de cette approche est la suivante:
Puisque ma méthode par "pas de 8 pixels" nécessite
32 [Bribe d'image Verticale pour les déplacement Droite et Gauche]
32 [Bribe d'image Horizontale pour les déplacements Haut et Bas]
En l'état, le seul et unique moyen de rester synchronisé lors d'un déplacement Vertical à un déplacement horizontal implique de se trouver OBLIGATOIREMENT au CENTRE de l'image native.
Autrement dit, lors d'un changement d'axe directionnel (Haut ou bas vers droite ou gauche, ou encore Droite ou Gauche vers Haut ou bas) l'affichage des bribes d'images "Verticale" et "horizontal" resteront cohérent SEULEMENT si le changement de direction se fait lors de l'affichage de la bribe 16!
Vous l'aurez compris, changer d'axe de déplacement seulement toutes les 16 bribes limite vachement l’intérêt du moteur.
La bonne nouvelle est que je pense (j'en suis sûr) avec trouvé la solution
Comme vous pouvez le voir sur la vidéo de Zelda, le héro ne reste pas figé au centre de l'image sans pour autant gâcher le plaisir du jeu et le gameplay reste très intéressant.
Alors voilà:
Puisque mon moteur ne permet de changer d'axe de Scroll toutes les 16 Bribes seulement, (de centre V en Centre H), il suffit de "libérer le héro" lorsque ce dernier change d'axe de déplacement.
Je m'explique:
1) Le héro se trouve sur une bribe autre que 16.
2) Le joueur décide de changer d'axe de déplacement. (H vers V ou V vers H)
3) Le programme libère le héro du centre de l'écran qui se promène librement dans l'image affichée fixement.
4a) Le héro "marche de nouveau" sur la Bribes 16 => remise en branle du scroll Vertical ou horizontal à volonté! => Retour à un scroll Normal.
4b) Le héro "marche" sur une bribe 32 (donc bord natif haut ou Bas des bribes H ou V)
5) Extinction de l'image
6) chargement du bloc de bribe correspondant au déplacement H ou V selon l'étape 4b
7) Le héro continue a se déplacer librement depuis le Bord de l'écran qui correspond dorénavant au bord de la bribe jusqu'à ce qu'il atteint la Bribe 16 => Retour à un scroll Normal.
On a donc en tout et pour tout, 64 Bribes permettant scroller à souhait (par pas de 8 pixels) dans les 4 points cardinaux une image de 256X256 en SCREEN8
L'autre bonne nouvelle est que je pense avoir trouvé la solution pour scrollé en Diagonal.
Mais je vous expliquerai ça une prochaine fois.
Le point négatif est que je vais devoir "contracter" le programme pour avoir la place de implémenter les commandes permettant le scroll Vertical.
Ca va être un casse tète je pense
igal
Membre non connecté
Conseiller Municipal
Salut à tous
Voila j'ai un peu bossé sur le moteur ce matin et je suis arrivé à déplacer le héro verticalement et diagonalement sans que ce dernier ne "sorte du screen"!
L'image scrool parfaitement depuis les coordonnées verticales de 0 à 254 selon le déplacement "semi libre" du héro.
J'ai donc besoin de passer à l'étape suivante à savoir implémenter le moteur de scrool vertical.
Pour cela, j'ai besoin de place!
Actuellement, j'ai testé la RAM restant à disposition et voici la réponse:
PRINT FREE(0) => 6697
Mon problème est le suivant:
Si je dois continuer selon ma méthode (petits pas par petits pas), il faut que je double littéralement le nombre de données nécessaires dans le listing suivant (il s'agit du listing permettant les déplacement à volonté droite <=> gauche) soit 21058 octets environs!
Ma question est la suivante:
Pouvez vous me "synthétiser"non pas le listing ci dessus (qui a quelques particularités), mais les listings ci dessous!
Merci de votre aide!
Déplacement vers LA GAUCHE pouvant être synthétisé:
Déplacement pouvant être synthétisé VERS LA DROITE!
NB: Les deux listings sont "interdépendants", cela signifie que chaque numéro de ligne à une importance capitale puisque le listing permettant le déplacement vers la droite prévoit l'inversion de direction (selon la volonté du joueur) en renvoyant vers le listing vers la gauche!
Je vous remercie de votre aide
N'hésitez pas à demander des précisions si je suis pas assez clair
Voila j'ai un peu bossé sur le moteur ce matin et je suis arrivé à déplacer le héro verticalement et diagonalement sans que ce dernier ne "sorte du screen"!
L'image scrool parfaitement depuis les coordonnées verticales de 0 à 254 selon le déplacement "semi libre" du héro.
J'ai donc besoin de passer à l'étape suivante à savoir implémenter le moteur de scrool vertical.
Pour cela, j'ai besoin de place!
Actuellement, j'ai testé la RAM restant à disposition et voici la réponse:
PRINT FREE(0) => 6697
Mon problème est le suivant:
Si je dois continuer selon ma méthode (petits pas par petits pas), il faut que je double littéralement le nombre de données nécessaires dans le listing suivant (il s'agit du listing permettant les déplacement à volonté droite <=> gauche) soit 21058 octets environs!
Code TEXT :
160 IFSV<-10THENRETURNELSESV=SV-1:'DIRECTION BAS GAUCHE X8******** 163 VDP(24)=VDP(24)+4AND255:X=X-16AND255:Y=Y+16AND255 164 PUTSPRITE0,(X,Y),7,0:PUTSPRITE1,(X,Y+8),2,1:PUTSPRITE2,(X,Y+16),2,2 165 PUTSPRITE3,(X+8,Y+8),9,0:PUTSPRITE4,(X-8,Y+8),10,1:PUTSPRITE5,(X,Y+16),2,1 166 PUTSPRITE6,(X-4,Y+21),6,6:PUTSPRITE7,(X+4,Y+21),6,7 167 RETURN 168 ' 170 'DIRECTION GAUCHE X8************ 171 G=1:VG=256:'Scroll vers la gauche 172 II=&HE:'Repertoire des Bribes Prima 173 I=&HE:'Repertoire Prima 174 CALLCHDIR("F"):GOTO 1300:'Condition Prima Gauche.Vers moteur X8 Gauche. 175 ' 180 IFSV>9THENRETURNELSESV=SV+1:'DIRECTION GAUCHE HAUT X8******* 183 VDP(24)=VDP(24)-4AND255:X=X-16AND255:Y=Y-16AND255 184 PUTSPRITE0,(X,Y),7,0:PUTSPRITE1,(X,Y+8),2,1:PUTSPRITE2,(X,Y+16),2,2 185 PUTSPRITE3,(X+8,Y+8),9,0:PUTSPRITE4,(X-8,Y+8),10,1:PUTSPRITE5,(X,Y+16),2,1 186 PUTSPRITE6,(X-4,Y+21),6,6:PUTSPRITE7,(X+4,Y+21),6,7 187 RETURN 188 ' 1300 'DIRECTION GAUCHE************ 1310 CALLCHDIR("F"):'SCROLL VERS LA GAUCHE 1320 S=STICK(0):ONS+1GOSUB100,110,120,1322,140,150,160,1324,180:GOTO1320 1322 G=1:I=I+3AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("0"):GOTO10324 1324 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1325 ' 1330 S=STICK(0):ONS+1GOSUB100,110,120,1332,140,150,160,1334,180:GOTO1330 1332 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("F"):GOTO11134 1334 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1335 ' 1350 CALL CHDIR ("..") 1360 CALLCHDIR("E"):'SCROLL VERS LA GAUCHE 1370 S=STICK(0):ONS+1GOSUB100,110,120,1372,140,150,160,1374,180:GOTO1370 1372 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("F"):GOTO11124 1374 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1375 ' 1380 S=STICK(0):ONS+1GOSUB100,110,120,1382,140,150,160,1384,180:GOTO1380 1382 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("E"):GOTO11034 1384 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1385 ' 1400 CALL CHDIR ("..") 1410 CALLCHDIR("D"):'SCROLL VERS LA GAUCHE 1420 S=STICK(0):ONS+1GOSUB100,110,120,1422,140,150,160,1424,180:GOTO1420 1422 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("E"):GOTO11024 1424 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1425 ' 1430 S=STICK(0):ONS+1GOSUB100,110,120,1432,140,150,160,1434,180:GOTO1430 1432 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("D"):GOTO10984 1434 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1435 ' 1450 CALL CHDIR ("..") 1460 CALLCHDIR("C"):'SCROLL VERS LA GAUCHE 1470 S=STICK(0):ONS+1GOSUB100,110,120,1472,140,150,160,1474,180:GOTO1470 1472 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("D"):GOTO10974 1474 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1475 ' 1480 S=STICK(0):ONS+1GOSUB100,110,120,1482,140,150,160,1484,180:GOTO1480 1482 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("C"):GOTO10934 1484 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1485 ' 1500 CALLCHDIR("..") 1510 CALLCHDIR("B"):'SCROLL VERS LA GAUCHE 1520 S=STICK(0):ONS+1GOSUB100,110,120,1522,140,150,160,1524,180:GOTO1520 1522 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("C"):GOTO10924 1524 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1525 ' 1530 S=STICK(0):ONS+1GOSUB100,110,120,1532,140,150,160,1534,180:GOTO1530 1532 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("B"):GOTO10884 1534 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1535 ' 1550 CALLCHDIR("..") 1560 CALLCHDIR("A"):'SCROLL VERS LA GAUCHE 1570 S=STICK(0):ONS+1GOSUB100,110,120,1572,140,150,160,1574,180:GOTO1570 1572 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("B"):GOTO10874 1574 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1575 ' 1580 S=STICK(0):ONS+1GOSUB100,110,120,1582,140,150,160,1584,180:GOTO1580 1582 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("A"):GOTO10834 1584 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1585 ' 1600 CALLCHDIR("..") 1610 CALLCHDIR("9"):'SCROLL VERS LA GAUCHE 1620 S=STICK(0):ONS+1GOSUB100,110,120,1622,140,150,160,1624,180:GOTO1620 1622 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("A"):GOTO10824 1624 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1625 ' 1630 S=STICK(0):ONS+1GOSUB100,110,120,1632,140,150,160,1634,180:GOTO1630 1632 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("9"):GOTO10784 1634 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1635 ' 1650 CALLCHDIR("..") 1660 CALLCHDIR("8"):'SCROLL VERS LA GAUCHE 1670 S=STICK(0):ONS+1GOSUB100,110,120,1672,140,150,160,1674,180:GOTO1670 1672 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("9"):GOTO10774 1674 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1675 ' 1680 S=STICK(0):ONS+1GOSUB100,110,120,1682,140,150,160,1684,180:GOTO1680 1682 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("8"):GOTO10734 1684 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1685 ' 1700 CALLCHDIR("..") 1710 CALLCHDIR("7"):'SCROLL VERS LA GAUCHE 1720 S=STICK(0):ONS+1GOSUB100,110,120,1722,140,150,160,1724,180:GOTO1720 1722 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("8"):GOTO10724 1724 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1725 ' 1730 S=STICK(0):ONS+1GOSUB100,110,120,1732,140,150,160,1734,180:GOTO1730 1732 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("7"):GOTO10684 1734 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1735 ' 1750 CALLCHDIR("..") 1760 CALLCHDIR("6"):'SCROLL VERS LA GAUCHE 1770 S=STICK(0):ONS+1GOSUB100,110,120,1772,140,150,160,1774,180:GOTO1770 1772 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("7"):GOTO10674 1774 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1775 ' 1780 S=STICK(0):ONS+1GOSUB100,110,120,1782,140,150,160,1784,180:GOTO1780 1782 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("6"):GOTO10634 1784 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1785 ' 1800 CALLCHDIR("..") 1810 CALLCHDIR("5"):'SCROLL VERS LA GAUCHE 1820 S=STICK(0):ONS+1GOSUB100,110,120,1822,140,150,160,1824,180:GOTO1820 1822 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("6"):GOTO10624 1824 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1825 ' 1830 S=STICK(0):ONS+1GOSUB100,110,120,1832,140,150,160,1834,180:GOTO1830 1832 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("5"):GOTO10584 1834 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1835 ' 1850 CALLCHDIR("..") 1860 CALLCHDIR("4"):'SCROLL VERS LA GAUCHE 1870 S=STICK(0):ONS+1GOSUB100,110,120,1872,140,150,160,1874,180:GOTO1870 1872 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("5"):GOTO10574 1874 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1875 ' 1880 S=STICK(0):ONS+1GOSUB100,110,120,1882,140,150,160,1884,180:GOTO1880 1882 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("4"):GOTO10534 1884 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1885 ' 1900 CALLCHDIR("..") 1910 CALLCHDIR("3"):'SCROLL VERS LA GAUCHE 1920 S=STICK(0):ONS+1GOSUB100,110,120,1922,140,150,160,1924,180:GOTO1920 1922 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("4"):GOTO10524 1924 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1925 ' 1930 S=STICK(0):ONS+1GOSUB100,110,120,1932,140,150,160,1934,180:GOTO1930 1932 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("3"):GOTO10484 1934 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1935 ' 1950 CALLCHDIR("..") 1960 CALLCHDIR("2"):'SCROLL VERS LA GAUCHE 1970 S=STICK(0):ONS+1GOSUB100,110,120,1972,140,150,160,1974,180:GOTO1970 1972 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("3"):GOTO10474 1974 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1975 ' 1980 S=STICK(0):ONS+1GOSUB100,110,120,1982,140,150,160,1984,180:GOTO1980 1982 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("2"):GOTO10434 1984 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1985 ' 2000 CALLCHDIR("..") 2010 CALLCHDIR("1"):'SCROLL VERS LA GAUCHE 2020 S=STICK(0):ONS+1GOSUB100,110,120,2022,140,150,160,2024,180:GOTO2020 2022 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("2"):GOTO10424 2024 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 2025 ' 2030 S=STICK(0):ONS+1GOSUB100,110,120,2032,140,150,160,2034,180:GOTO2030 2032 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("1"):GOTO10384 2034 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 2035 ' 2050 CALLCHDIR("..") 2060 CALLCHDIR("0"):'SCROLL VERS LA GAUCHE 2070 S=STICK(0):ONS+1GOSUB100,110,120,2072,140,150,160,2074,180:GOTO2070 2072 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("1"):GOTO10374 2074 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 2075 ' 2080 S=STICK(0):ONS+1GOSUB100,110,120,2082,140,150,160,2084,180:GOTO2080 2082 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("0"):GOTO10334 2084 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 2085 ' 2090 IFD=1THENI=I-1AND&HF:D=0 2100 CALLCHDIR(".."):CALLCHDIR("..") 2580 'choix DU repertoire DES repertoires de Bribes 2582 IF I=&HFTHENCALLCHDIR("F"):I=&HE:GOTO1310 2584 IF I=&HETHENCALLCHDIR("E"):I=&HD:GOTO1310 2586 IF I=&HDTHENCALLCHDIR("D"):I=&HC:GOTO1310 2588 IF I=&HCTHENCALLCHDIR("C"):I=&HB:GOTO1310 2590 IF I=&HBTHENCALLCHDIR("B"):I=&HA:GOTO1310 2592 IF I=&HATHENCALLCHDIR("A"):I=&H9:GOTO1310 2594 IF I=&H9THENCALLCHDIR("9"):I=&H8:GOTO1310 2596 IF I=&H8THENCALLCHDIR("8"):I=&H7:GOTO1310 2598 IF I=&H7THENCALLCHDIR("7"):I=&H6:GOTO1310 2600 IF I=&H6THENCALLCHDIR("6"):I=&H5:GOTO1310 2602 IF I=&H5THENCALLCHDIR("5"):I=&H4:GOTO1310 2604 IF I=&H4THENCALLCHDIR("4"):I=&H3:GOTO1310 2606 IF I=&H3THENCALLCHDIR("3"):I=&H2:GOTO1310 2608 IF I=&H2THENCALLCHDIR("2"):I=&H1:GOTO1310 2610 IF I=&H1THENCALLCHDIR("1"):I=&H0:GOTO1310 2612 IF I=&H0THENCALLCHDIR("0"):I=&HF:GOTO1310 2613 ' 5299 'Repertoire des repertoires bascule Gauche vers la Droite 5300 IFD=1THENI=I-1AND&HF:D=0 5301 IFI=&HFTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("F"):RETURN 5302 IFI=&HETHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("E"):RETURN 5303 IFI=&HDTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("D"):RETURN 5304 IFI=&HCTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("C"):RETURN 5305 IFI=&HBTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("B"):RETURN 5306 IFI=&HATHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("A"):RETURN 5307 IFI=&H9THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("9"):RETURN 5308 IFI=&H8THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("8"):RETURN 5309 IFI=&H7THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("7"):RETURN 5310 IFI=&H6THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("6"):RETURN 5311 IFI=&H5THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("5"):RETURN 5312 IFI=&H4THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("4"):RETURN 5313 IFI=&H3THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("3"):RETURN 5314 IFI=&H2THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("2"):RETURN 5315 IFI=&H1THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("1"):RETURN 5316 IFI=&H0THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("0"):RETURN 10300 'DIRECTION DROITE************ 10310 CALLCHDIR("0"):'SCROLL VERS LA DROITE 10320 S=STICK(0):ONS+1GOSUB100,110,120,10324,140,150,160,10322,180:GOTO10320 10322 D=1:I=I-3AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("F"):GOTO1324 10324 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10325 ' 10330 S=STICK(0):ONS+1GOSUB100,110,120,10334,140,150,160,10332,180:GOTO10330 10332 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("0"):GOTO2084 10334 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10335 ' 10350 CALL CHDIR ("..") 10360 CALLCHDIR("1"):'SCROLL VERS LA DROITE 10370 S=STICK(0):ONS+1GOSUB100,110,120,10374,140,150,160,10372,180:GOTO10370 10372 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("0"):GOTO2074 10374 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10375 ' 10380 S=STICK(0):ONS+1GOSUB100,110,120,10384,140,150,160,10382,180:GOTO10380 10382 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("1"):GOTO2034 10384 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10385 ' 10400 CALL CHDIR ("..") 10410 CALLCHDIR("2"):'SCROLL VERS LA DROITE 10420 S=STICK(0):ONS+1GOSUB100,110,120,10424,140,150,160,10422,180:GOTO10420 10422 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("1"):GOTO2024 10424 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10425 ' 10430 S=STICK(0):ONS+1GOSUB100,110,120,10434,140,150,160,10432,180:GOTO10430 10432 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("2"):GOTO1984 10434 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10435 ' 10450 CALL CHDIR ("..") 10460 CALLCHDIR("3"):'SCROLL VERS LA DROITE 10470 S=STICK(0):ONS+1GOSUB100,110,120,10474,140,150,160,10472,180:GOTO10470 10472 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("2"):GOTO1974 10474 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10475 ' 10480 S=STICK(0):ONS+1GOSUB100,110,120,10484,140,150,160,10482,180:GOTO10480 10482 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("3"):GOTO1934 10484 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10485 ' 10500 CALL CHDIR ("..") 10510 CALLCHDIR("4"):'SCROLL VERS LA DROITE 10520 S=STICK(0):ONS+1GOSUB100,110,120,10524,140,150,160,10522,180:GOTO10520 10522 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("3"):GOTO1924 10524 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10525 ' 10530 S=STICK(0):ONS+1GOSUB100,110,120,10534,140,150,160,10532,180:GOTO10530 10532 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("4"):GOTO1884 10534 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10535 ' 10550 CALL CHDIR ("..") 10560 CALLCHDIR("5"):'SCROLL VERS LA DROITE 10570 S=STICK(0):ONS+1GOSUB100,110,120,10574,140,150,160,10572,180:GOTO10570 10572 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("4"):GOTO1874 10574 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10575 ' 10580 S=STICK(0):ONS+1GOSUB100,110,120,10584,140,150,160,10582,180:GOTO10580 10582 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("5"):GOTO1834 10584 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10585 ' 10600 CALL CHDIR ("..") 10610 CALLCHDIR("6"):'SCROLL VERS LA DROITE 10620 S=STICK(0):ONS+1GOSUB100,110,120,10624,140,150,160,10622,180:GOTO10620 10622 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("5"):GOTO1824 10624 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10625 ' 10630 S=STICK(0):ONS+1GOSUB100,110,120,10634,140,150,160,10632,180:GOTO10630 10632 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("6"):GOTO1784 10634 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10635 ' 10650 CALL CHDIR ("..") 10660 CALLCHDIR("7"):'SCROLL VERS LA DROITE 10670 S=STICK(0):ONS+1GOSUB100,110,120,10674,140,150,160,10672,180:GOTO10670 10672 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("6"):GOTO1774 10674 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10675 ' 10680 S=STICK(0):ONS+1GOSUB100,110,120,10684,140,150,160,10682,180:GOTO10680 10682 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("7"):GOTO1734 10684 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10685 ' 10700 CALL CHDIR("..") 10710 CALLCHDIR("8"):'SCROLL VERS LA DROITE 10720 S=STICK(0):ONS+1GOSUB100,110,120,10724,140,150,160,10722,180:GOTO10720 10722 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("7"):GOTO1724 10724 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10725 ' 10730 S=STICK(0):ONS+1GOSUB100,110,120,10734,140,150,160,10732,180:GOTO10730 10732 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("8"):GOTO1684 10734 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10735 ' 10750 CALL CHDIR ("..") 10760 CALLCHDIR("9"):'SCROLL VERS LA DROITE 10770 S=STICK(0):ONS+1GOSUB100,110,120,10774,140,150,160,10772,180:GOTO10770 10772 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("8"):GOTO1674 10774 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10775 ' 10780 S=STICK(0):ONS+1GOSUB100,110,120,10784,140,150,160,10782,180:GOTO10780 10782 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("9"):GOTO1634 10784 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10785 ' 10800 CALL CHDIR ("..") 10810 CALLCHDIR("A"):'SCROLL VERS LA DROITE 10820 S=STICK(0):ONS+1GOSUB100,110,120,10824,140,150,160,10822,180:GOTO10820 10822 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("9"):GOTO1624 10824 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10825 ' 10830 S=STICK(0):ONS+1GOSUB100,110,120,10834,140,150,160,10832,180:GOTO10830 10832 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("A"):GOTO1584 10834 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10835 ' 10850 CALL CHDIR ("..") 10860 CALLCHDIR("B"):'SCROLL VERS LA DROITE 10870 S=STICK(0):ONS+1GOSUB100,110,120,10874,140,150,160,10872,180:GOTO10870 10872 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("A"):GOTO1574 10874 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10875 ' 10880 S=STICK(0):ONS+1GOSUB100,110,120,10884,140,150,160,10882,180:GOTO10880 10882 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("B"):GOTO1534 10884 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10885 ' 10900 CALL CHDIR ("..") 10910 CALLCHDIR("C"):'SCROLL VERS LA DROITE 10920 S=STICK(0):ONS+1GOSUB100,110,120,10924,140,150,160,10922,180:GOTO10920 10922 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("B"):GOTO1524 10924 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10925 ' 10930 S=STICK(0):ONS+1GOSUB100,110,120,10934,140,150,160,10932,180:GOTO10930 10932 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("C"):GOTO1484 10934 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10935 ' 10950 CALL CHDIR ("..") 10960 CALLCHDIR("D"):'SCROLL VERS LA DROITE 10970 S=STICK(0):ONS+1GOSUB100,110,120,10974,140,150,160,10972,180:GOTO10970 10972 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("C"):GOTO1474 10974 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10975 ' 10980 S=STICK(0):ONS+1GOSUB100,110,120,10984,140,150,160,10982,180:GOTO10980 10982 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("D"):GOTO1434 10984 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10985 ' 11000 CALL CHDIR ("..") 11010 CALLCHDIR("E"):'SCROLL VERS LA DROITE 11020 S=STICK(0):ONS+1GOSUB100,110,120,11024,140,150,160,11022,180:GOTO11020 11022 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("D"):GOTO1424 11024 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11025 ' 11030 S=STICK(0):ONS+1GOSUB100,110,120,11034,140,150,160,11032,180:GOTO11030 11032 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("E"):GOTO1384 11034 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11035 ' 11050 CALL CHDIR ("..") 11110 CALLCHDIR("F")'SCROLL VERS LA DROITE 11120 S=STICK(0):ONS+1GOSUB100,110,120,11124,140,150,160,11122,180:GOTO11120 11122 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("E"):GOTO1374 11124 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11125 ' 11130 S=STICK(0):ONS+1GOSUB100,110,120,11134,140,150,160,11132,180:GOTO11130 11132 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("F"):GOTO1334 11134 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11135 ' 11140 IFG=1THENI=I+1AND&HF:G=0 11150 CALL CHDIR (".."):CALL CHDIR ("..") 12580 'choix DU repertoire DES repertoires de Bribes 12582 IF I=&HFTHENCALLCHDIR("F"):I=&H0:GOTO10310 12584 IF I=&HETHENCALLCHDIR("E"):I=&HF:GOTO10310 12586 IF I=&HDTHENCALLCHDIR("D"):I=&HE:GOTO10310 12588 IF I=&HCTHENCALLCHDIR("C"):I=&HD:GOTO10310 12590 IF I=&HBTHENCALLCHDIR("B"):I=&HC:GOTO10310 12592 IF I=&HATHENCALLCHDIR("A"):I=&HB:GOTO10310 12594 IF I=&H9THENCALLCHDIR("9"):I=&HA:GOTO10310 12596 IF I=&H8THENCALLCHDIR("8"):I=&H9:GOTO10310 12598 IF I=&H7THENCALLCHDIR("7"):I=&H8:GOTO10310 12600 IF I=&H6THENCALLCHDIR("6"):I=&H7:GOTO10310 12602 IF I=&H5THENCALLCHDIR("5"):I=&H6:GOTO10310 12604 IF I=&H4THENCALLCHDIR("4"):I=&H5:GOTO10310 12606 IF I=&H3THENCALLCHDIR("3"):I=&H4:GOTO10310 12608 IF I=&H2THENCALLCHDIR("2"):I=&H3:GOTO10310 12610 IF I=&H1THENCALLCHDIR("1"):I=&H2:GOTO10310 12612 IF I=&H0THENCALLCHDIR("0"):I=&H1:GOTO10310 12613 ' 20299 'Repertoire des repertoires bascule Droite vers Gauche 20300 IFG=1THENI=I+1AND&HF:G=0 20301 IFI=&H0THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("0"):RETURN 20302 IFI=&H1THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("1"):RETURN 20303 IFI=&H2THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("2"):RETURN 20304 IFI=&H3THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("3"):RETURN 20305 IFI=&H4THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("4"):RETURN 20306 IFI=&H5THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("5"):RETURN 20307 IFI=&H6THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("6"):RETURN 20308 IFI=&H7THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("7"):RETURN 20309 IFI=&H8THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("8"):RETURN 20310 IFI=&H9THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("9"):RETURN 20311 IFI=&HATHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("A"):RETURN 20312 IFI=&HBTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("B"):RETURN 20313 IFI=&HCTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("C"):RETURN 20314 IFI=&HDTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("D"):RETURN 20315 IFI=&HETHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("E"):RETURN 20316 IFI=&HFTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("F"):RETURN
Ma question est la suivante:
Pouvez vous me "synthétiser"non pas le listing ci dessus (qui a quelques particularités), mais les listings ci dessous!
Merci de votre aide!
Déplacement vers LA GAUCHE pouvant être synthétisé:
Code TEXT :
1350 CALL CHDIR ("..") 1360 CALLCHDIR("E"):'SCROLL VERS LA GAUCHE 1370 S=STICK(0):ONS+1GOSUB100,110,120,1372,140,150,160,1374,180:GOTO1370 1372 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("F"):GOTO11124 1374 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1375 ' 1380 S=STICK(0):ONS+1GOSUB100,110,120,1382,140,150,160,1384,180:GOTO1380 1382 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("E"):GOTO11034 1384 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1385 ' 1400 CALL CHDIR ("..") 1410 CALLCHDIR("D"):'SCROLL VERS LA GAUCHE 1420 S=STICK(0):ONS+1GOSUB100,110,120,1422,140,150,160,1424,180:GOTO1420 1422 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("E"):GOTO11024 1424 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1425 ' 1430 S=STICK(0):ONS+1GOSUB100,110,120,1432,140,150,160,1434,180:GOTO1430 1432 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("D"):GOTO10984 1434 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1435 ' 1450 CALL CHDIR ("..") 1460 CALLCHDIR("C"):'SCROLL VERS LA GAUCHE 1470 S=STICK(0):ONS+1GOSUB100,110,120,1472,140,150,160,1474,180:GOTO1470 1472 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("D"):GOTO10974 1474 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1475 ' 1480 S=STICK(0):ONS+1GOSUB100,110,120,1482,140,150,160,1484,180:GOTO1480 1482 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("C"):GOTO10934 1484 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1485 ' 1500 CALLCHDIR("..") 1510 CALLCHDIR("B"):'SCROLL VERS LA GAUCHE 1520 S=STICK(0):ONS+1GOSUB100,110,120,1522,140,150,160,1524,180:GOTO1520 1522 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("C"):GOTO10924 1524 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1525 ' 1530 S=STICK(0):ONS+1GOSUB100,110,120,1532,140,150,160,1534,180:GOTO1530 1532 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("B"):GOTO10884 1534 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1535 ' 1550 CALLCHDIR("..") 1560 CALLCHDIR("A"):'SCROLL VERS LA GAUCHE 1570 S=STICK(0):ONS+1GOSUB100,110,120,1572,140,150,160,1574,180:GOTO1570 1572 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("B"):GOTO10874 1574 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1575 ' 1580 S=STICK(0):ONS+1GOSUB100,110,120,1582,140,150,160,1584,180:GOTO1580 1582 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("A"):GOTO10834 1584 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1585 ' 1600 CALLCHDIR("..") 1610 CALLCHDIR("9"):'SCROLL VERS LA GAUCHE 1620 S=STICK(0):ONS+1GOSUB100,110,120,1622,140,150,160,1624,180:GOTO1620 1622 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("A"):GOTO10824 1624 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1625 ' 1630 S=STICK(0):ONS+1GOSUB100,110,120,1632,140,150,160,1634,180:GOTO1630 1632 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("9"):GOTO10784 1634 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1635 ' 1650 CALLCHDIR("..") 1660 CALLCHDIR("8"):'SCROLL VERS LA GAUCHE 1670 S=STICK(0):ONS+1GOSUB100,110,120,1672,140,150,160,1674,180:GOTO1670 1672 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("9"):GOTO10774 1674 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1675 ' 1680 S=STICK(0):ONS+1GOSUB100,110,120,1682,140,150,160,1684,180:GOTO1680 1682 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("8"):GOTO10734 1684 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1685 ' 1700 CALLCHDIR("..") 1710 CALLCHDIR("7"):'SCROLL VERS LA GAUCHE 1720 S=STICK(0):ONS+1GOSUB100,110,120,1722,140,150,160,1724,180:GOTO1720 1722 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("8"):GOTO10724 1724 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1725 ' 1730 S=STICK(0):ONS+1GOSUB100,110,120,1732,140,150,160,1734,180:GOTO1730 1732 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("7"):GOTO10684 1734 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1735 ' 1750 CALLCHDIR("..") 1760 CALLCHDIR("6"):'SCROLL VERS LA GAUCHE 1770 S=STICK(0):ONS+1GOSUB100,110,120,1772,140,150,160,1774,180:GOTO1770 1772 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("7"):GOTO10674 1774 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1775 ' 1780 S=STICK(0):ONS+1GOSUB100,110,120,1782,140,150,160,1784,180:GOTO1780 1782 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("6"):GOTO10634 1784 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1785 ' 1800 CALLCHDIR("..") 1810 CALLCHDIR("5"):'SCROLL VERS LA GAUCHE 1820 S=STICK(0):ONS+1GOSUB100,110,120,1822,140,150,160,1824,180:GOTO1820 1822 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("6"):GOTO10624 1824 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1825 ' 1830 S=STICK(0):ONS+1GOSUB100,110,120,1832,140,150,160,1834,180:GOTO1830 1832 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("5"):GOTO10584 1834 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1835 ' 1850 CALLCHDIR("..") 1860 CALLCHDIR("4"):'SCROLL VERS LA GAUCHE 1870 S=STICK(0):ONS+1GOSUB100,110,120,1872,140,150,160,1874,180:GOTO1870 1872 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("5"):GOTO10574 1874 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1875 ' 1880 S=STICK(0):ONS+1GOSUB100,110,120,1882,140,150,160,1884,180:GOTO1880 1882 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("4"):GOTO10534 1884 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1885 ' 1900 CALLCHDIR("..") 1910 CALLCHDIR("3"):'SCROLL VERS LA GAUCHE 1920 S=STICK(0):ONS+1GOSUB100,110,120,1922,140,150,160,1924,180:GOTO1920 1922 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("4"):GOTO10524 1924 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1925 ' 1930 S=STICK(0):ONS+1GOSUB100,110,120,1932,140,150,160,1934,180:GOTO1930 1932 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("3"):GOTO10484 1934 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1935 ' 1950 CALLCHDIR("..") 1960 CALLCHDIR("2"):'SCROLL VERS LA GAUCHE 1970 S=STICK(0):ONS+1GOSUB100,110,120,1972,140,150,160,1974,180:GOTO1970 1972 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("3"):GOTO10474 1974 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 1975 ' 1980 S=STICK(0):ONS+1GOSUB100,110,120,1982,140,150,160,1984,180:GOTO1980 1982 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("2"):GOTO10434 1984 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 1985 ' 2000 CALLCHDIR("..") 2010 CALLCHDIR("1"):'SCROLL VERS LA GAUCHE 2020 S=STICK(0):ONS+1GOSUB100,110,120,2022,140,150,160,2024,180:GOTO2020 2022 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("2"):GOTO10424 2024 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 2025 ' 2030 S=STICK(0):ONS+1GOSUB100,110,120,2032,140,150,160,2034,180:GOTO2030 2032 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("1"):GOTO10384 2034 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 2035 ' 2050 CALLCHDIR("..") 2060 CALLCHDIR("0"):'SCROLL VERS LA GAUCHE 2070 S=STICK(0):ONS+1GOSUB100,110,120,2072,140,150,160,2074,180:GOTO2070 2072 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("1"):GOTO10374 2074 G=0:VG=VG-8AND255:COPY"115"TO(VG,0):SETSCROLLVG 2075 ' 2080 S=STICK(0):ONS+1GOSUB100,110,120,2082,140,150,160,2084,180:GOTO2080 2082 G=1:I=I+2AND&HF:GOSUB5300:VD=VG-256AND255:CALLCHDIR("0"):GOTO10334 2084 G=0:VG=VG-8AND255:COPY"111"TO(VG,0):SETSCROLLVG 2085 '
Déplacement pouvant être synthétisé VERS LA DROITE!
Code TEXT :
10350 CALL CHDIR ("..") 10360 CALLCHDIR("1"):'SCROLL VERS LA DROITE 10370 S=STICK(0):ONS+1GOSUB100,110,120,10374,140,150,160,10372,180:GOTO10370 10372 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("0"):GOTO2074 10374 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10375 ' 10380 S=STICK(0):ONS+1GOSUB100,110,120,10384,140,150,160,10382,180:GOTO10380 10382 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("1"):GOTO2034 10384 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10385 ' 10400 CALL CHDIR ("..") 10410 CALLCHDIR("2"):'SCROLL VERS LA DROITE 10420 S=STICK(0):ONS+1GOSUB100,110,120,10424,140,150,160,10422,180:GOTO10420 10422 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("1"):GOTO2024 10424 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10425 ' 10430 S=STICK(0):ONS+1GOSUB100,110,120,10434,140,150,160,10432,180:GOTO10430 10432 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("2"):GOTO1984 10434 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10435 ' 10450 CALL CHDIR ("..") 10460 CALLCHDIR("3"):'SCROLL VERS LA DROITE 10470 S=STICK(0):ONS+1GOSUB100,110,120,10474,140,150,160,10472,180:GOTO10470 10472 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("2"):GOTO1974 10474 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10475 ' 10480 S=STICK(0):ONS+1GOSUB100,110,120,10484,140,150,160,10482,180:GOTO10480 10482 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("3"):GOTO1934 10484 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10485 ' 10500 CALL CHDIR ("..") 10510 CALLCHDIR("4"):'SCROLL VERS LA DROITE 10520 S=STICK(0):ONS+1GOSUB100,110,120,10524,140,150,160,10522,180:GOTO10520 10522 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("3"):GOTO1924 10524 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10525 ' 10530 S=STICK(0):ONS+1GOSUB100,110,120,10534,140,150,160,10532,180:GOTO10530 10532 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("4"):GOTO1884 10534 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10535 ' 10550 CALL CHDIR ("..") 10560 CALLCHDIR("5"):'SCROLL VERS LA DROITE 10570 S=STICK(0):ONS+1GOSUB100,110,120,10574,140,150,160,10572,180:GOTO10570 10572 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("4"):GOTO1874 10574 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10575 ' 10580 S=STICK(0):ONS+1GOSUB100,110,120,10584,140,150,160,10582,180:GOTO10580 10582 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("5"):GOTO1834 10584 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10585 ' 10600 CALL CHDIR ("..") 10610 CALLCHDIR("6"):'SCROLL VERS LA DROITE 10620 S=STICK(0):ONS+1GOSUB100,110,120,10624,140,150,160,10622,180:GOTO10620 10622 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("5"):GOTO1824 10624 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10625 ' 10630 S=STICK(0):ONS+1GOSUB100,110,120,10634,140,150,160,10632,180:GOTO10630 10632 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("6"):GOTO1784 10634 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10635 ' 10650 CALL CHDIR ("..") 10660 CALLCHDIR("7"):'SCROLL VERS LA DROITE 10670 S=STICK(0):ONS+1GOSUB100,110,120,10674,140,150,160,10672,180:GOTO10670 10672 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("6"):GOTO1774 10674 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10675 ' 10680 S=STICK(0):ONS+1GOSUB100,110,120,10684,140,150,160,10682,180:GOTO10680 10682 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("7"):GOTO1734 10684 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10685 ' 10700 CALL CHDIR("..") 10710 CALLCHDIR("8"):'SCROLL VERS LA DROITE 10720 S=STICK(0):ONS+1GOSUB100,110,120,10724,140,150,160,10722,180:GOTO10720 10722 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("7"):GOTO1724 10724 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10725 ' 10730 S=STICK(0):ONS+1GOSUB100,110,120,10734,140,150,160,10732,180:GOTO10730 10732 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("8"):GOTO1684 10734 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10735 ' 10750 CALL CHDIR ("..") 10760 CALLCHDIR("9"):'SCROLL VERS LA DROITE 10770 S=STICK(0):ONS+1GOSUB100,110,120,10774,140,150,160,10772,180:GOTO10770 10772 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("8"):GOTO1674 10774 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10775 ' 10780 S=STICK(0):ONS+1GOSUB100,110,120,10784,140,150,160,10782,180:GOTO10780 10782 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("9"):GOTO1634 10784 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10785 ' 10800 CALL CHDIR ("..") 10810 CALLCHDIR("A"):'SCROLL VERS LA DROITE 10820 S=STICK(0):ONS+1GOSUB100,110,120,10824,140,150,160,10822,180:GOTO10820 10822 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("9"):GOTO1624 10824 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10825 ' 10830 S=STICK(0):ONS+1GOSUB100,110,120,10834,140,150,160,10832,180:GOTO10830 10832 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("A"):GOTO1584 10834 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10835 ' 10850 CALL CHDIR ("..") 10860 CALLCHDIR("B"):'SCROLL VERS LA DROITE 10870 S=STICK(0):ONS+1GOSUB100,110,120,10874,140,150,160,10872,180:GOTO10870 10872 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("A"):GOTO1574 10874 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10875 ' 10880 S=STICK(0):ONS+1GOSUB100,110,120,10884,140,150,160,10882,180:GOTO10880 10882 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("B"):GOTO1534 10884 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10885 ' 10900 CALL CHDIR ("..") 10910 CALLCHDIR("C"):'SCROLL VERS LA DROITE 10920 S=STICK(0):ONS+1GOSUB100,110,120,10924,140,150,160,10922,180:GOTO10920 10922 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("B"):GOTO1524 10924 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10925 ' 10930 S=STICK(0):ONS+1GOSUB100,110,120,10934,140,150,160,10932,180:GOTO10930 10932 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("C"):GOTO1484 10934 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10935 ' 10950 CALL CHDIR ("..") 10960 CALLCHDIR("D"):'SCROLL VERS LA DROITE 10970 S=STICK(0):ONS+1GOSUB100,110,120,10974,140,150,160,10972,180:GOTO10970 10972 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("C"):GOTO1474 10974 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10975 ' 10980 S=STICK(0):ONS+1GOSUB100,110,120,10984,140,150,160,10982,180:GOTO10980 10982 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("D"):GOTO1434 10984 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 10985 ' 11000 CALL CHDIR ("..") 11010 CALLCHDIR("E"):'SCROLL VERS LA DROITE 11020 S=STICK(0):ONS+1GOSUB100,110,120,11024,140,150,160,11022,180:GOTO11020 11022 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("D"):GOTO1424 11024 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11025 ' 11030 S=STICK(0):ONS+1GOSUB100,110,120,11034,140,150,160,11032,180:GOTO11030 11032 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("E"):GOTO1384 11034 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11035 ' 11050 CALL CHDIR ("..") 11110 CALLCHDIR("F")'SCROLL VERS LA DROITE 11120 S=STICK(0):ONS+1GOSUB100,110,120,11124,140,150,160,11122,180:GOTO11120 11122 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("E"):GOTO1374 11124 D=0:COPY"111"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11125 ' 11130 S=STICK(0):ONS+1GOSUB100,110,120,11134,140,150,160,11132,180:GOTO11130 11132 D=1:I=I-2AND&HF:GOSUB20300:VG=VD+256AND255:CALLCHDIR("F"):GOTO1334 11134 D=0:COPY"115"TO(VD,0):VD=VD+8AND255:SETSCROLLVD 11135 '
NB: Les deux listings sont "interdépendants", cela signifie que chaque numéro de ligne à une importance capitale puisque le listing permettant le déplacement vers la droite prévoit l'inversion de direction (selon la volonté du joueur) en renvoyant vers le listing vers la gauche!
Je vous remercie de votre aide
N'hésitez pas à demander des précisions si je suis pas assez clair
Citation:
pour gagner en code basic il faut voir les lignes qui se ressemblent et les simplifier
20302 IFI=&H1THENGOSUB30000:CALLCHDIR("1"):RETURN
20303 IFI=&H2THENGOSUB30000:CALLCHDIR("2"):RETURN
etc etc.....
30000 CALLCHDIR(".."):CALLCHDIR(".."):RETURN
aprés il y des moyens de passer d'une variable numérique a une variable alphanumérique pour n'avoir qu'une seule ligne mais il faut que je révise un peu
20302 IFI=&H1THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("1"):RETURN
20303 IFI=&H2THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("2"):RETURN
20304 IFI=&H3THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("3"):RETURN
20305 IFI=&H4THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("4"):RETURN
20306 IFI=&H5THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("5"):RETURN
20307 IFI=&H6THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("6"):RETURN
20308 IFI=&H7THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("7"):RETURN
20309 IFI=&H8THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("8"):RETURN
20310 IFI=&H9THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("9"):RETURN
20311 IFI=&HATHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("A"):RETURN
20312 IFI=&HBTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("B"):RETURN
20313 IFI=&HCTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("C"):RETURN
20314 IFI=&HDTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("D"):RETURN
20315 IFI=&HETHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("E"):RETURN
20316 IFI=&HFTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("F"):RETURN
20303 IFI=&H2THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("2"):RETURN
20304 IFI=&H3THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("3"):RETURN
20305 IFI=&H4THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("4"):RETURN
20306 IFI=&H5THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("5"):RETURN
20307 IFI=&H6THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("6"):RETURN
20308 IFI=&H7THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("7"):RETURN
20309 IFI=&H8THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("8"):RETURN
20310 IFI=&H9THENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("9"):RETURN
20311 IFI=&HATHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("A"):RETURN
20312 IFI=&HBTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("B"):RETURN
20313 IFI=&HCTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("C"):RETURN
20314 IFI=&HDTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("D"):RETURN
20315 IFI=&HETHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("E"):RETURN
20316 IFI=&HFTHENCALLCHDIR(".."):CALLCHDIR(".."):CALLCHDIR("F"):RETURN
pour gagner en code basic il faut voir les lignes qui se ressemblent et les simplifier
20302 IFI=&H1THENGOSUB30000:CALLCHDIR("1"):RETURN
20303 IFI=&H2THENGOSUB30000:CALLCHDIR("2"):RETURN
etc etc.....
30000 CALLCHDIR(".."):CALLCHDIR(".."):RETURN
aprés il y des moyens de passer d'une variable numérique a une variable alphanumérique pour n'avoir qu'une seule ligne mais il faut que je révise un peu
igal
Membre non connecté
Conseiller Municipal
Voici un pack contenant les images et répertoires de sorte à tester.
RACINE DU DISQUE E.zip
Nb: Le programme se nomme METAL022.ASC.
Pour le charger il suffit de faire LOAD"METAL022.ASC
Pour le sauvegarder il suffit de faire SAVE"METAL022.ASC",A
L'avantage du format ASC (ascii) est de pouvoir l'ouvrir sur PC et le modifier avec un logiciel tel que Notepad!
Si vous voulez un dessin sur la nomenclature du programme, je peux faire ça...Ca sera peut être plus clair à comprendre dans son ensemble
Je vais faire un petit dessin qui explique l'approche que je veux essayer pour scroller en diagonal Ce sera un peu plus clair dans ma tête Edité par igal Le 28/04/2017 à 14h38
RACINE DU DISQUE E.zip
Nb: Le programme se nomme METAL022.ASC.
Pour le charger il suffit de faire LOAD"METAL022.ASC
Pour le sauvegarder il suffit de faire SAVE"METAL022.ASC",A
L'avantage du format ASC (ascii) est de pouvoir l'ouvrir sur PC et le modifier avec un logiciel tel que Notepad!
Si vous voulez un dessin sur la nomenclature du programme, je peux faire ça...Ca sera peut être plus clair à comprendre dans son ensemble
Je vais faire un petit dessin qui explique l'approche que je veux essayer pour scroller en diagonal Ce sera un peu plus clair dans ma tête Edité par igal Le 28/04/2017 à 14h38
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie