MSX Village forum

La Place des Développeurs [EN COURS] Joe&mac Challenge. scrolling du jeu Joe And Ma.

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 23/12/2014 à 18h01
Il me semble avoir répondu à un challenge pour cette fin d'année.
voici mon projet :tea



Pour le moment, faute de temps, je préfère ne pas me lancer dans un projet trop ambitieux.

Juste le Scrolling Vertical et Horizontal de tous les Stages du Jeu.

Si je trouve le temps d'en faire plus, j'essaierai d'ajouter les commandes de déplacement de Sprites :D

(Les différents Bacgrounds viennent de http://vgmaps.com/)
La Map World:

Stage 01:

Stage 02:

Stage 03:

Stage 04:

Stage 05:

Stage 06:

Stage 07:



(Les ripps ci dessous proviennent de http://www.spriters-resource.com/)
Les Héros:

Tirs et Items:

Bosses et Ennemis:

Les Filles Sauvées:

Femmes trainées par les cheuveux:

Le Village Kali:


Par la suite, si je trouve le moyen d'exploiter le Music Module en Multitache, on pourra espérer avec une bande son pour accompagner l'aventure ;)

A suivre... Edité par igal Le 27/03/2015 à 12h11


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

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 16/10/2009 à 18h53

Messages: 683

Le 23/12/2014 à 18h15
Sacré Igal !
On doit faire une petite démo pour Noël et Monsieur Igal nous offre un remake !
Bravo, bravo, bravo quel cadeau !
En plus, un remake d'un chouette titre !
GE-NIAL !
:top :top :top


MSX1 Sony HB501F / MSX2+ FSA1FX / MSX2+ FSA1WX / MSX2+ FSA1WSX / MSX Turbo-R ST / MSX Turbo-R GT
Moonsound 2.0 & DalSoRi - Interface CF & CF Card Interface - MegaFlash SCC 512Ko & 2x512ko - SRam 512Ko - Megaflashrom SCC + SD
MSX4Ever !!
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 23/12/2014 à 18h29
Attention :)

Pour le moment, je souhaite juste reproduire les scroll Multidirectionnels des différents stages.
(Peut être en Screen 5 comme le suggérait Métalion de sorte à profiter d'un maximum de pages en Vram)
Ca c'est pour la petite demo de fin d'année.

Pour le reste, me faudrait un PC qui soit waterproof pour programmer sous la douche :fou
Même aux toilettes je suis pressé :oups Edité par igal Le 23/12/2014 à 18h31


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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 08/08/2010 à 20h57

Messages: 5788

Le 23/12/2014 à 18h38
C'est tellement énorme que je sais pas quoi dire :)

et ca tiendra sur combien de disquettes? :p



MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
   
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5481

Le 23/12/2014 à 18h41
TurboSEB :
C'est tellement énorme que je sais pas quoi dire :)



et ca tiendra sur combien de disquettes? :p


disquette ? c'est quoi une disquette ?



tout mes encouragements Igal... ;)


banniere-ericb59e
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 27/12/2014 à 20h03
J'ai pu passe quelques heure sur le moteur permettant un Scrolling vertical de avec un point de départ bas.

Ce moteur est la suite logique du programme utilisé pour scroller OUTZONE mais en regroupant les bribes par paquets de 16 bribes contenues dans des répertoires et sous répertoires le tout nommé en hexadécimal pour un gain de vitesse quant à l'accès aux fichiers.

pour ce qui est du SCREEN, je vais rester en SCREEN10/11 puisque mon intention première est de démontrer les possibilités du msx avec une approche inexploitée tel un concept.

Le SCREEN 12 répond parfaitement aux plus exigeants puisqu'il y a que très peu de perte de détails lors des conversions BMP2MSX.

Le gain réel de vitesse peut demande de compétences que je n'ai pas mais une fois le concept démontré il ne reste qu'à une personne motivée pour optimiser le tout.

demain je posterai une video Edité par igal Le 27/12/2014 à 20h55


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/01/2015 à 15h02
Finalement, après pas mal d'essais, le SCREEN 5 semble être un super compromis.

J'ai donc modifié le générateur de bribes puisque le générateur SCREEN10/11 et 12 occupe 2 fois plus de mémoire que la même image en SCREEN 5.

Conséquence directe et flagrante, le Scroll est 2 fois plus rapide et ça c'est très cool puisque l'on obtient quelque chose de très dynamique.

Il me reste quelques détails à régler comme l'affichage sur la Zone de Sprites à savoir:
Afficher mes bribe au nombre de 22 faisant 2 pixels de haut avec une surface totale de 44 lignes.
Afficher ces 22 Bribes sur l'emplacement accessible en SCREEN 12 par la commande suivante:

602 BLOAD"f",S,0-11264:GOSUB 1510

En SCREEN 5 la valeur 0-11264 ne fonctionne pas ce qui est normal.
Par contre, en écrivant ce post, je me rend compte que je n'ai pas essayé de simplement diviser cette valeur par 2 :fou

ce qui devrait donner:
602 BLOAD"f",S,0-5632:GOSUB 1510

On verra bien.

D'autre par, j'ai aussi remodelé le "Player" pour ranger les bribes par Paquet de 8 bribes et non plus par paquet de 16 Bribes.

L'avantage étant que l'écran peut être dorénavant divisé en 16 paquets de 16 lignes.
soit 16 blocs haut de 16 pixels.

Par la suite, une fois que tout sera rodé, j'essaierai d'implémenter un scroll Horizontal.
En premier lieu, ce sera simplement un enchainement de scroll horizontal après que le Scroll vertical soit terminé.
Dans un second temps, j'essaierai de trouver une solution pour obtenir un scroll complètement libre dans toutes les directions :top

@ suivre...


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

Le 28/01/2015 à 18h05
infos sur le screen 5
la table des noms - 192 lignes 0000H - 5FFFH 24576 octets
- 212 lignes 0000H - 69FFH 27136 octets
table des attributs de sprite : - 7600H - 767FH 128 octets
table des formes de sprite : - 7800H - 7FFFH 2048 octets
table des couleurs de sprite : - 7400H - 75FFFH 512 octets
table de palette : - 7680H - 769FH 32 octets


:noel
Site web    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 29/01/2015 à 11h03
Merci Jipe:
Il s'agit bien de:
BLOAD"BRIBE.SC5"S,0+27136

Par contre, je me rend compte d'une chose très intéressante:

Plutôt que d'intégrer différents paramètres au PLAYER pour afficher les bribes sur la zone des sprites par la formule suivante:
BLOAD"BRIBE.SC5"S,0+27136

Lors de mes essais, je me suis rendu compte qu'en créant les Bribes avec les paramètres du SCREEN12 pour une image en SCREEN5, toutes les Bribes sont "décallées" de 128 lignes!

Voici la formule qui affiche une Bribe SCREEN12 à la colonne ZERO, ligne ZERO:
100 BLOAD"00000000.SC5",S: BSAVE"000",256*0,256*2-1,S

Voici la formule qui affiche une Bribe SCREEN5 à la colonne ZERO ligne ZERO:
100 BLOAD"00000000.SC5",S: BSAVE"000",128*0,128*2-1,S

Si l'on utilise le générateur de bribes destiné au SCREEN12 avec une image en SCREEN5, toutes les bribes seront "décalées de 128 lignes plus loin!"

Je me demande si il est donc possible de générer des Bribes de telles sorte qu'elles s'affichent "spontanément" sur la ZONE des SPRITES => S,0+27136

De fait, le Player en serait très simplifié puisqu'il ne serait plus nécessaire de distinguer des bribes à afficher sur la zone "Standard" et les bribes à afficher sur la zone des "Sprites"!

un truc du genre pour du SCREEN 5:
100 BLOAD"00000000.SC5",S: BSAVE"000",128*0+27136,128*2-1+27136,S

:fou :D ^^ Edité par igal Le 29/01/2015 à 11h05


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 29/01/2015 à 15h47
Cool.

En fait, il faut faire les choses en deux temps.

Ce qui suit ne concerne que la Zone à afficher dans la Zone des Sprite :D

1) Je LOAD l'image dans la zone des SPRITES située à +27136
2) Je BSAVE l'image dans la zone des SPRITES située à +27136
Nb: Evidemment, il faut inclure les paramètres du SEGMENT BRIBES à sauver!

Au final, on obtient une bribe ayant pour coordonnées la Partie Zone des Sprites :top

Dorénavant, le PLAYER peut être réduit à sa plus simple expression puisqu'il n'y a plus aucune particularité à prendre en compte :tchin :tchin :tchin

206 BLOAD"00000001.SC5",S,0+27136: BSAVE"106",128*0+27136,128*2-1+27136,S
207 BLOAD"00000001.SC5",S,0+27136: BSAVE"107",128*2+27136,128*4-1+27136,S
208 BLOAD"00000001.SC5",S,0+27136: BSAVE"108",128*4+27136,128*6-1+27136,S
209 BLOAD"00000001.SC5",S,0+27136: BSAVE"109",128*6+27136,128*8-1+27136,S
210 BLOAD"00000001.SC5",S,0+27136: BSAVE"110",128*8+27136,128*10-1+27136,S
211 BLOAD"00000001.SC5",S,0+27136: BSAVE"111",128*10+27136,128*12-1+27136,S

212 BLOAD"00000001.SC5",S,0+27136: BSAVE"112",128*12+27136,128*14-1+27136,S
213 BLOAD"00000001.SC5",S,0+27136: BSAVE"113",128*14+27136,128*16-1+27136,S
214 BLOAD"00000001.SC5",S,0+27136: BSAVE"114",128*16+27136,128*18-1+27136,S
215 BLOAD"00000001.SC5",S,0+27136: BSAVE"115",128*18+27136,128*20-1+27136,S
216 BLOAD"00000001.SC5",S,0+27136: BSAVE"116",128*20+27136,128*22-1+27136,S
217 BLOAD"00000001.SC5",S,0+27136: BSAVE"117",128*22+27136,128*24-1+27136,S
218 BLOAD"00000001.SC5",S,0+27136: BSAVE"118",128*24+27136,128*26-1+27136,S
219 BLOAD"00000001.SC5",S,0+27136: BSAVE"119",128*26+27136,128*28-1+27136,S

220 BLOAD"00000001.SC5",S,0+27136: BSAVE"120",128*28+27136,128*30-1+27136,S
221 BLOAD"00000001.SC5",S,0+27136: BSAVE"121",128*30+27136,128*32-1+27136,S
222 BLOAD"00000001.SC5",S,0+27136: BSAVE"122",128*32+27136,128*34-1+27136,S
223 BLOAD"00000001.SC5",S,0+27136: BSAVE"123",128*34+27136,128*36-1+27136,S
224 BLOAD"00000001.SC5",S,0+27136: BSAVE"124",128*36+27136,128*38-1+27136,S
225 BLOAD"00000001.SC5",S,0+27136: BSAVE"125",128*38+27136,128*40-1+27136,S
226 BLOAD"00000001.SC5",S,0+27136: BSAVE"126",128*40+27136,128*42-1+27136,S
227 BLOAD"00000001.SC5",S,0+27136: BSAVE"127",128*42+27136,128*44-1+27136,S

....A plus tard...Au magasin lol


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 30/01/2015 à 17h24
Voici la nouvelle mouture du moteur.

Pour rappel, grace au générateur de bribes "copiées déplacées" et "déplacées collées", il n'est plus nécessaire de modifier le player pour afficher les bribes sur la zone des SPRITES.

Tout est fait au niveau du générateur.

voici le résulta en image:
http://youtu.be/7iPKc3mq-ik


Voici les générateurs:
Code TEXT :
 
10      'SAVE"B2GEN0-1.asc",A
20 'generateur de bribes d'images 128 X 2 simplifié version 2.0
22'
30 ' Mode Graphique utilisé
32 VDP(10)=0: SCREEN 5
 
70 'Charger image ZERO [212X256] depuis la ligne Zero vers Zero
72 BLOAD"00000000.SC5",S: COLOR=RESTORE
74 '
76 'Creer et entrer dans le repertoire I-1 [Image Un]
78 CALL MKDIR ("I-1"):CALL CHDIR ("I-1")
80 '
 
90 'Creer repertoires de 0 a F et y générer 7 bribes hautes de 2 lignes.
 
100 CALL MKDIR ("0"):CALL CHDIR ("0"):BSAVE"0",128*0,128*2-1,S
101 BSAVE"1",128*2,128*4-1,S
102 BSAVE"2",128*4,128*6-1,S
103 BSAVE"3",128*6,128*8-1,S
104 BSAVE"4",128*8,128*10-1,S
105 BSAVE"5",128*10,128*12-1,S
106 BSAVE"6",128*12,128*14-1,S
107 BSAVE"7",128*14,128*16-1,S:CALL CHDIR ("..")
 
108 CALL MKDIR ("1"):CALL CHDIR ("1"):BSAVE"0",128*16,128*18-1,S
109 BSAVE"1",128*18,128*20-1,S
110 BSAVE"2",128*20,128*22-1,S
111 BSAVE"3",128*22,128*24-1,S
112 BSAVE"4",128*24,128*26-1,S
113 BSAVE"5",128*26,128*28-1,S
114 BSAVE"6",128*28,128*30-1,S
115 BSAVE"7",128*30,128*32-1,S:CALL CHDIR ("..")
 
116 CALL MKDIR ("2"):CALL CHDIR ("2"):BSAVE"0",128*32,128*34-1,S
117 BSAVE"1",128*34,128*36-1,S
118 BSAVE"2",128*36,128*38-1,S
119 BSAVE"3",128*38,128*40-1,S
120 BSAVE"4",128*40,128*42-1,S
121 BSAVE"5",128*42,128*44-1,S
122 BSAVE"6",128*44,128*46-1,S
123 BSAVE"7",128*46,128*48-1,S:CALL CHDIR ("..")
 
124 CALL MKDIR ("3"):CALL CHDIR ("3"): BSAVE"0",128*48,128*50-1,S
125 BSAVE"1",128*50,128*52-1,S
126 BSAVE"2",128*52,128*54-1,S
127 BSAVE"3",128*54,128*56-1,S
128 BSAVE"4",128*56,128*58-1,S
129 BSAVE"5",128*58,128*60-1,S
130 BSAVE"6",128*60,128*62-1,S
131 BSAVE"7",128*62,128*64-1,S:CALL CHDIR ("..")
 
132 CALL MKDIR ("4"):CALL CHDIR ("4"): BSAVE"0",128*64,128*66-1,S
133 BSAVE"1",128*66,128*68-1,S
134 BSAVE"2",128*68,128*70-1,S
135 BSAVE"3",128*70,128*72-1,S
136 BSAVE"4",128*72,128*74-1,S
137 BSAVE"5",128*74,128*76-1,S
138 BSAVE"6",128*76,128*78-1,S
139 BSAVE"7",128*78,128*80-1,S:CALL CHDIR ("..")
 
140 CALL MKDIR ("5"):CALL CHDIR ("5"): BSAVE"0",128*80,128*82-1,S
141 BSAVE"1",128*82,128*84-1,S
142 BSAVE"2",128*84,128*86-1,S
143 BSAVE"3",128*86,128*88-1,S
144 BSAVE"4",128*88,128*90-1,S
145 BSAVE"5",128*90,128*92-1,S
146 BSAVE"6",128*92,128*94-1,S
147 BSAVE"7",128*94,128*96-1,S:CALL CHDIR ("..")
 
148 CALL MKDIR ("6"):CALL CHDIR ("6"): BSAVE"0",128*96,128*98-1,S
149 BSAVE"1",128*98,128*100-1,S
150 BSAVE"2",128*100,128*102-1,S
151 BSAVE"3",128*102,128*104-1,S
152 BSAVE"4",128*104,128*106-1,S
153 BSAVE"5",128*106,128*108-1,S
154 BSAVE"6",128*108,128*110-1,S
155 BSAVE"7",128*110,128*112-1,S:CALL CHDIR ("..")
 
156 CALL MKDIR ("7"):CALL CHDIR ("7"): BSAVE"0",128*112,128*114-1,S
157 BSAVE"1",128*114,128*116-1,S
158 BSAVE"2",128*116,128*118-1,S
159 BSAVE"3",128*118,128*120-1,S
160 BSAVE"4",128*120,128*122-1,S
161 BSAVE"5",128*122,128*124-1,S
162 BSAVE"6",128*124,128*126-1,S
163 BSAVE"7",128*126,128*128-1,S:CALL CHDIR ("..")
 
164 CALL MKDIR ("8"):CALL CHDIR ("8"): BSAVE"0",128*128,128*130-1,S
165 BSAVE"1",128*130,128*132-1,S
166 BSAVE"2",128*132,128*134-1,S
167 BSAVE"3",128*134,128*136-1,S
168 BSAVE"4",128*136,128*138-1,S
169 BSAVE"5",128*138,128*140-1,S
170 BSAVE"6",128*140,128*142-1,S
171 BSAVE"7",128*142,128*144-1,S:CALL CHDIR ("..")
 
172 CALL MKDIR ("9"):CALL CHDIR ("9"): BSAVE"0",128*144,128*146-1,S
173 BSAVE"1",128*146,128*148-1,S
174 BSAVE"2",128*148,128*150-1,S
175 BSAVE"3",128*150,128*152-1,S
176 BSAVE"4",128*152,128*154-1,S
177 BSAVE"5",128*154,128*156-1,S
178 BSAVE"6",128*156,128*158-1,S
179 BSAVE"7",128*158,128*160-1,S:CALL CHDIR ("..")
 
180 CALL MKDIR ("A"):CALL CHDIR ("A"): BSAVE"0",128*160,128*162-1,S
181 BSAVE"1",128*162,128*164-1,S
182 BSAVE"2",128*164,128*166-1,S
183 BSAVE"3",128*166,128*168-1,S
184 BSAVE"4",128*168,128*170-1,S
185 BSAVE"5",128*170,128*172-1,S
186 BSAVE"6",128*172,128*174-1,S
187 BSAVE"7",128*174,128*176-1,S:CALL CHDIR ("..")
 
188 CALL MKDIR ("B"):CALL CHDIR ("B"): BSAVE"0",128*176,128*178-1,S
189 BSAVE"1",128*178,128*180-1,S
190 BSAVE"2",128*180,128*182-1,S
191 BSAVE"3",128*182,128*184-1,S
192 BSAVE"4",128*184,128*186-1,S
193 BSAVE"5",128*186,128*188-1,S
194 BSAVE"6",128*188,128*190-1,S
195 BSAVE"7",128*190,128*192-1,S:CALL CHDIR ("..")
 
196 CALL MKDIR ("C"):CALL CHDIR ("C"): BSAVE"0",128*192,128*194-1,S
197 BSAVE"1",128*194,128*196-1,S
198 BSAVE"2",128*196,128*198-1,S
199 BSAVE"3",128*198,128*200-1,S
200 BSAVE"4",128*200,128*202-1,S
201 BSAVE"5",128*202,128*204-1,S
202 BSAVE"6",128*204,128*206-1,S
203 BSAVE"7",128*206,128*208-1,S:CALL CHDIR ("..")
 
204 CALL MKDIR ("D"):CALL CHDIR ("D"): BSAVE"0",128*208,128*210-1,S
205 BSAVE"1",128*210,128*212-1,S:CALL CHDIR ("..")
 
1000 'Revenir à la racine du disque
1002 CALL CHDIR ("..")
1004'
1070 'Charger image UN [44X256] depuis la ligne Zero vers Zero + 27136 bytes de décalage
1072 BLOAD"00000001.SC5",S,0+27136: COLOR=RESTORE
1074 '
1076 'Entrer dans le repertoire I-1 [Image Un]
1078 CALL CHDIR ("I-1")
1080 '
 
1090 'Creer repertoires de D a F et y générer 7 bribes hautes de 2 lignes.
1092 'Sauver les bribes lignes Zero vers Zero + 27136 bytes de décalage.
 
1206 CALL CHDIR ("D"): BSAVE"2",128*0+27136,128*2-1+27136,S
1207 BSAVE"3",128*2+27136,128*4-1+27136,S
1208 BSAVE"4",128*4+27136,128*6-1+27136,S
1209 BSAVE"5",128*6+27136,128*8-1+27136,S
1210 BSAVE"6",128*8+27136,128*10-1+27136,S
1211 BSAVE"7",128*10+27136,128*12-1+27136,S:CALL CHDIR ("..")
 
1212 CALL MKDIR ("E"):CALL CHDIR ("E"): BSAVE"0",128*12+27136,128*14-1+27136,S
1213 BSAVE"1",128*14+27136,128*16-1+27136,S
1214 BSAVE"2",128*16+27136,128*18-1+27136,S
1215 BSAVE"3",128*18+27136,128*20-1+27136,S
1216 BSAVE"4",128*20+27136,128*22-1+27136,S
1217 BSAVE"5",128*22+27136,128*24-1+27136,S
1218 BSAVE"6",128*24+27136,128*26-1+27136,S
1219 BSAVE"7",128*26+27136,128*28-1+27136,S:CALL CHDIR ("..")
 
1220 CALL MKDIR ("F"):CALL CHDIR ("F"): BSAVE"0",128*28+27136,128*30-1+27136,S
1221 BSAVE"1",128*30+27136,128*32-1+27136,S
1222 BSAVE"2",128*32+27136,128*34-1+27136,S
1223 BSAVE"3",128*34+27136,128*36-1+27136,S
1224 BSAVE"4",128*36+27136,128*38-1+27136,S
1225 BSAVE"5",128*38+27136,128*40-1+27136,S
1226 BSAVE"6",128*40+27136,128*42-1+27136,S
1227 BSAVE"7",128*42+27136,128*44-1+27136,S:CALL CHDIR ("..")
 
1264 'Revenir a la racine
1265 CALL CHDIR("..")
 


Voici le nouveau player:
Code TEXT :
 
10 'SAVE"RPLAY17.asc",A
12 'Version 002
14 'PLAYER DE BRIBES VERICALES[(106 X 2) + (22 X 256)]
16 VDP(10)=0:SCREEN 5:VDP(24)=VDP(24)+212:VDP(9)=VDP(9)OR2
18 N=2:P=0:RB=D:X=100:Y=100
20 BLOAD"ALPHA.SC5",S:COLOR=RESTORE:COLOR ,1,1:CLS
100 IF I=0THEN CALL CHDIR ("I-1"):GOTO 200
102 IF I=1THEN CALL CHDIR ("I-2"):GOTO 200
104 IF I=2THEN CALL CHDIR ("I-3"):GOTO 200
106 IF I=3THEN CALL CHDIR ("I-4"):GOTO 200
200 CALL CHDIR ("D"):VB=D
202 BLOAD"1",S:GOSUB 1510
204 BLOAD"0",S:GOSUB 1510
206 CALL CHDIR ("..")
300 CALL CHDIR ("C"):VB=C
302 BLOAD"7",S:GOSUB 1510
304 BLOAD"6",S:GOSUB 1510
306 BLOAD"5",S:GOSUB 1510
308 BLOAD"4",S:GOSUB 1510
310 BLOAD"3",S:GOSUB 1510
312 BLOAD"2",S:GOSUB 1510
314 BLOAD"1",S:GOSUB 1510
316 BLOAD"0",S:GOSUB 1510
318 CALL CHDIR ("..")
320 CALL CHDIR ("B"):VB=B
322 BLOAD"7",S:GOSUB 1510
324 BLOAD"6",S:GOSUB 1510
326 BLOAD"5",S:GOSUB 1510
328 BLOAD"4",S:GOSUB 1510
330 BLOAD"3",S:GOSUB 1510
332 BLOAD"2",S:GOSUB 1510
334 BLOAD"1",S:GOSUB 1510
336 BLOAD"0",S:GOSUB 1510
338 CALL CHDIR ("..")
340 CALL CHDIR ("A"):VB=A
342 BLOAD"7",S:GOSUB 1510
344 BLOAD"6",S:GOSUB 1510
346 BLOAD"5",S:GOSUB 1510
348 BLOAD"4",S:GOSUB 1510
350 BLOAD"3",S:GOSUB 1510
352 BLOAD"2",S:GOSUB 1510
354 BLOAD"1",S:GOSUB 1510
356 BLOAD"0",S:GOSUB 1510
358 CALL CHDIR ("..")
360 CALL CHDIR ("9"):VB=9
362 BLOAD"7",S:GOSUB 1510
364 BLOAD"6",S:GOSUB 1510
366 BLOAD"5",S:GOSUB 1510
368 BLOAD"4",S:GOSUB 1510
370 BLOAD"3",S:GOSUB 1510
372 BLOAD"2",S:GOSUB 1510
374 BLOAD"1",S:GOSUB 1510
376 BLOAD"0",S:GOSUB 1510
378 CALL CHDIR ("..")
380 CALL CHDIR ("8"):VB=8
382 BLOAD"7",S:GOSUB 1510
384 BLOAD"6",S:GOSUB 1510
386 BLOAD"5",S:GOSUB 1510
388 BLOAD"4",S:GOSUB 1510
390 BLOAD"3",S:GOSUB 1510
392 BLOAD"2",S:GOSUB 1510
394 BLOAD"1",S:GOSUB 1510
396 BLOAD"0",S:GOSUB 1510
398 CALL CHDIR ("..")
400 CALL CHDIR ("7"):VB=7
402 BLOAD"7",S:GOSUB 1510
404 BLOAD"6",S:GOSUB 1510
406 BLOAD"5",S:GOSUB 1510
408 BLOAD"4",S:GOSUB 1510
410 BLOAD"3",S:GOSUB 1510
412 BLOAD"2",S:GOSUB 1510
414 BLOAD"1",S:GOSUB 1510
416 BLOAD"0",S:GOSUB 1510
418 CALL CHDIR ("..")
420 CALL CHDIR ("6"):VB=6
422 BLOAD"7",S:GOSUB 1510
424 BLOAD"6",S:GOSUB 1510
426 BLOAD"5",S:GOSUB 1510
428 BLOAD"4",S:GOSUB 1510
430 BLOAD"3",S:GOSUB 1510
432 BLOAD"2",S:GOSUB 1510
434 BLOAD"1",S:GOSUB 1510
436 BLOAD"0",S:GOSUB 1510
438 CALL CHDIR ("..")
440 CALL CHDIR ("5"):VB=5
442 BLOAD"7",S:GOSUB 1510
444 BLOAD"6",S:GOSUB 1510
446 BLOAD"5",S:GOSUB 1510
448 BLOAD"4",S:GOSUB 1510
450 BLOAD"3",S:GOSUB 1510
452 BLOAD"2",S:GOSUB 1510
454 BLOAD"1",S:GOSUB 1510
456 BLOAD"0",S:GOSUB 1510
458 CALL CHDIR ("..")
460 CALL CHDIR ("4"):VB=4
462 BLOAD"7",S:GOSUB 1510
464 BLOAD"6",S:GOSUB 1510
466 BLOAD"5",S:GOSUB 1510
468 BLOAD"4",S:GOSUB 1510
470 BLOAD"3",S:GOSUB 1510
472 BLOAD"2",S:GOSUB 1510
474 BLOAD"1",S:GOSUB 1510
476 BLOAD"0",S:GOSUB 1510
478 CALL CHDIR ("..")
480 CALL CHDIR ("3"):VB=3
482 BLOAD"7",S:GOSUB 1510
484 BLOAD"6",S:GOSUB 1510
486 BLOAD"5",S:GOSUB 1510
488 BLOAD"4",S:GOSUB 1510
490 BLOAD"3",S:GOSUB 1510
492 BLOAD"2",S:GOSUB 1510
494 BLOAD"1",S:GOSUB 1510
496 BLOAD"0",S:GOSUB 1510
498 CALL CHDIR ("..")
500 CALL CHDIR ("2"):VB=2
502 BLOAD"7",S:GOSUB 1510
504 BLOAD"6",S:GOSUB 1510
506 BLOAD"5",S:GOSUB 1510
508 BLOAD"4",S:GOSUB 1510
510 BLOAD"3",S:GOSUB 1510
512 BLOAD"2",S:GOSUB 1510
514 BLOAD"1",S:GOSUB 1510
516 BLOAD"0",S:GOSUB 1510
518 CALL CHDIR ("..")
520 CALL CHDIR ("1"):VB=1
522 BLOAD"7",S:GOSUB 1510
524 BLOAD"6",S:GOSUB 1510
526 BLOAD"5",S:GOSUB 1510
528 BLOAD"4",S:GOSUB 1510
530 BLOAD"3",S:GOSUB 1510
532 BLOAD"2",S:GOSUB 1510
534 BLOAD"1",S:GOSUB 1510
536 BLOAD"0",S:GOSUB 1510
538 CALL CHDIR ("..")
540 CALL CHDIR ("0"):VB=0
542 BLOAD"7",S:GOSUB 1510
544 BLOAD"6",S:GOSUB 1510
546 BLOAD"5",S:GOSUB 1510
548 BLOAD"4",S:GOSUB 1510
550 BLOAD"3",S:GOSUB 1510
552 BLOAD"2",S:GOSUB 1510
554 BLOAD"1",S:GOSUB 1510
556 BLOAD"0",S:GOSUB 1510
558 CALL CHDIR (".."):IF I=4 GOTO2000
560 CALL CHDIR ("F"):VB=F
562 BLOAD"7",S:GOSUB 1510
564 BLOAD"6",S:GOSUB 1510
566 BLOAD"5",S:GOSUB 1510
568 BLOAD"4",S:GOSUB 1510
570 BLOAD"3",S:GOSUB 1510
572 BLOAD"2",S:GOSUB 1510
574 BLOAD"1",S:GOSUB 1510
576 BLOAD"0",S:GOSUB 1510
578 CALL CHDIR ("..")
580 CALL CHDIR ("E"):VB=E
582 BLOAD"7",S:GOSUB 1510
584 BLOAD"6",S:GOSUB 1510
586 BLOAD"5",S:GOSUB 1510
588 BLOAD"4",S:GOSUB 1510
590 BLOAD"3",S:GOSUB 1510
592 BLOAD"2",S:GOSUB 1510
594 BLOAD"1",S:GOSUB 1510
596 BLOAD"0",S:GOSUB 1510
598 CALL CHDIR ("..")
600 CALL CHDIR ("D"):VB=D
602 BLOAD"7",S:GOSUB 1510
604 BLOAD"6",S:GOSUB 1510
606 BLOAD"5",S:GOSUB 1510
608 BLOAD"4",S:GOSUB 1510
610 BLOAD"3",S:GOSUB 1510
612 BLOAD"2",S:GOSUB 1510
614 CALL CHDIR (".."):CALL CHDIR (".."):I=I+1:GOTO100
1500 '
1510 'PUTSPRITE 0,(X,Y),4,0:IFSTRIG(0)THENPUTSPRITE0,(X,Y-20),9,0
1515 S=STICK(0):ONS+1 GOSUB 1530,1560,1590,1620,1650,1690,1720,1750,1780:RETURN
1520 '
1530 'STATIQUE
1540 VDP(24)=VDP(24)-2AND255:Y=Y-2AND255:RETURN
1550 '
1560 'HAUT
1570 VDP(24)=VDP(24)-2AND255:Y=Y-4AND255:RETURN
1580 '
1590 'DIAGO HAUT DROITE
1600 VDP(24)=VDP(24)-2AND255:X=X+4AND255:Y=Y-4AND255:RETURN
1610 '
1620 'DROITE
1630 VDP(24)=VDP(24)-2AND255:X=X+4AND255:RETURN
1640 '
1650 'DROITE BAS
1660 VDP(24)=VDP(24)+2AND255:X=X+4AND255:Y=Y+4AND255:RETURN
1670 '
1680 '
1690 'BAS
1700 VDP(24)=VDP(24)+2AND255:Y=Y+4AND255:RETURN
1710 '
1720 'DIAGO BAS GAUCHE
1730 VDP(24)=VDP(24)+2AND255:X=X-4AND255:Y=Y+4AND255:RETURN
1740 '
1750 'GAUCHE
1760 VDP(24)=VDP(24)-2AND255:X=X-4AND255:RETURN
1770 '
1780 'DIAGO HAUT GAUCHE
1790 VDP(24)=VDP(24)-2AND255:X=X-4AND255:Y=Y-4AND255:RETURN
 
Edité par igal Le 30/01/2015 à 17h52


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 30/01/2015 à 18h53
j'ai automatisé toute la partie MSX et il ne faut que 10 minutes pour faire ceci :top



Ca vous plait :D

voici les sources :)
JOE&MAC.rar Edité par igal Le 30/01/2015 à 19h10


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/02/2015 à 10h30
C'est juste pour se faire une idée quant à la faisabilité du concept.

Pour le coup, ca tient la route :top (forcément, faut régler de nombreux détails mais ca le fait)



A suivre.


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 03/02/2015 à 12h03
J'ai un petit soucis pour jouer la bonne animation du Héro.



Pour l'animation Droite et gauche:
Chaque étape fait 40 pixels de Large sur 46 Pixels de Haut.
Puisqu'il y a 4 étapes, on à dont un total de 160 pixels.

Avec la condition IF, l'animation fonctionne de façon cohérente.
----------------------------------
900 S=STICK(0):ONS+1 GOSUB 1000,1100,1200,1300,1400,1500,1600,1700,1800:RETURN
1300 'DROITE******************
1310 VDP(24)=VDP(24)-2AND255
1320 B=0:COPY(A,B)-(A+39,B+45),1TO(X,Y),0:A=A+40:IFA=160THENA=0
1330 RETURN
------------------------------------
Cependant, IF ralenti le processus et je voudrai le remplacer par AND.

Voici comment je procède:
-----------------------------------
900 S=STICK(0):ONS+1 GOSUB 1000,1100,1200,1300,1400,1500,1600,1700,1800:RETURN
1300 'DROITE******************
1310 VDP(24)=VDP(24)-2AND255
1320 B=0:COPY(A,B)-(A+39,B+45),1TO(X,Y),0:A=A+40AND160
1330 RETURN
-------------------------------------
Cette fois, l'animation est incohérente et ne tombe jamais juste!

AND160 remet pourtant A à ZERO si sa valeur atteint 160!
Je comprends pas pourquoi ca marche pas :fou Edité par igal Le 03/02/2015 à 12h04


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

Le 03/02/2015 à 12h18
non igal, c'est :

A=(A+40) MOD 160

A revient à Zéro si A>=160


banniere-ericb59e
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie