La Place des Développeurs [En cours] Scroll d'une map sur deux axes. Scroller une map MSX en utilisant deux techniques.
 
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
 )
 )
 
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
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
Edité par
igal
Le 01/09/2016 à 18h21
 
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
 
 
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
 
 
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
 
@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
 
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
 
 
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"):RETURNMa 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

 
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
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
Edité par
igal
Le 28/04/2017 à 14h38
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie

 
 
 

 

 

 
