MSX Village forum

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

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 30/08/2016 à 12h27
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 :D )

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 :p

@ Suivre (sans me presser :oups )


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 01/09/2016 à 18h18
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 :top

Vais voir si Pégase a travaillé sur l'image d'intro pour la mettre dans la tite démo :D Edité par igal Le 01/09/2016 à 18h21


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 02/09/2016 à 11h44
voici donc le scroll Horizontal par "pas" de 8 pixels (Droite <=> Gauche) selon la commande du joueur :top


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 :oups


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5566

Le 02/09/2016 à 12h38
Tu l'avais déjà fait ça igal ? non ?
Qu'est-ce qui est nouveau ?


banniere-ericb59e
Site web    
pegase Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 21/11/2009 à 21h52

Messages: 974

Le 02/09/2016 à 13h22
En gros : tu découpes une image en blocs de 8x8 et tu la réaffiches en colonnes dans l'écran, c'est bien ça ?


Rétro ... mais pas trop !
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 02/09/2016 à 14h09
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 :)


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 04/09/2016 à 11h22
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:
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 :top

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


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 04/09/2016 à 14h33
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


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 04/09/2016 à 17h25
@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


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 26/04/2017 à 18h48
Jipe:
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


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 :D
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. :top
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. :top

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 :tchin

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 :oups


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 28/04/2017 à 11h35
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!
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 :top

N'hésitez pas à demander des précisions si je suis pas assez clair :fou


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 28/04/2017 à 11h54
Citation:
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


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 ;)



:noel
Site web    
Sector28 Membre non connecté

Villageois

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 12/05/2018 à 23h00

Messages: 561

Le 28/04/2017 à 13h33
X$=STR$(X)


DONALD TRUMP IS FAST APPROACHING
NEMESIS ! RETURN IMMEDIATELY !
   
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10731

Le 28/04/2017 à 14h14
le probléme est de savoir si on peut faire une commande CHDIR incluant le X$ !!



:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 28/04/2017 à 14h35
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! :top

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 :fou Edité par igal Le 28/04/2017 à 14h38


Tiens... voila du boudin, voila du boudin, voila du boudin... :siffle
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie