MSX Village forum

La Place des Développeurs moteur de jeu en basic création, optimisation

igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 07/11/2010 à 13h18
Bonjour à tous.

J'ai continué mes investigations, et suis arrivé à un modeste résulta, mais plutôt encourageant.

L'image est chargée avec la bonne palette graphique.

Mon but maintenant est de parfaire le chargement de l'image en la rendant invisible, et de créer une animation le tout tel que décrit dans le tableau scénario Scénario Bleu.
(La lecture se fait depuis la ligne haute à la ligne basse)
1) De gauche à droite: Afficher l'image [Encadrée en Vert No 1] puis déplacer le prochain affichage de deux pixels à droite, et encore [Encadrée en Vert No1] et répéter l'opération trois fois de suite puis passer à [Encadrée en Vert No 2] puis déplacer....etc...etc...
2) De droite à gauche: Afficher l'image [Encadrée en violet No 1] puis déplacer le prochain affichage d'un Pixel à gauche, et encore [Encadrée en Violet No 1] et répéter l'opération Deux fois de suite puis passer à [Encadrée en Violet No 2] puis déplacer ...etc...etc...

Le scénario de cinq lignes doivent s'afficher sur la [Zone d'Animation].
Ayant une connaissance très limité, je vais me servir de ces quelques lignes de code postés par Msxosaure:

10 SCREEN5,2: DEFINTA-Z
20 SET PAGE0,1
30 BLOAD"player.ge5",S
40 SET PAGE0,0
50 BLOAD"aster.sc5",S
60 COPY(0,0)-(255,192)TO(0,0),2
70 COLOR=RESTORE
80 J=5
90 FORI=0TOJ
100 COPY(X,Y)-(X+24,Y+24),2TO(0,0),3
110 COPY(I*16,L)-(15+I*16,L+16),1TO(4,4),3,TPSET
120 COPY(0,0)-(24,24),3TO(X,Y),0
130 S=STICK(0)
140 X=X+4*(S>5ANDX>9)-4*(S>1ANDS<5ANDX<230)
150 Y=Y+4*(S=1ANDY>0ORS=8ANDY>0ORS=2ANDY>0)-4*(S>3ANDS<7ANDY<168)
160 IFSTRIG(0)=-1THENL=L-32:J=5:IFL=-32THENL=64:J=3:I=5
170 NEXT
180 GOTO 90

Bien entendu, quelques modifications s'imposent, mais l'ensemble m'intéresse beaucoup :) Edité par igal Le 07/11/2010 à 15h28


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 778

Le 07/11/2010 à 22h22
igal :
Mon but maintenant est de parfaire le chargement de l'image en la rendant invisible...




Comme on est parti sur du BMPTOMSX je peux te donner une technique pour bénéficier de la transparence tout en conservant les contours noirs du personnage.



Reprenons l'image de base:





Il faut remplacer la couleur transparente de fond par une couleur non-utilisée pour le dessin du sprite. Prenons le BLANC (15).



Maintenant il faut paramétrer BMPTOMSX correctement:



  • don't use 'color0: pour éviter que celle-ci ne prenne la place d'une couleur du "sprite" (le noir entre autre).
  • Le blanc (15) sur customize color(marqué HOLD): la couleur ne sera pas modifiée par le programme et sera utilisée pour le fond.
  • Les autres couleurs sur automatic color pour pouvoir être redéfinies par le programme.
  • Et sauvegarde de la palette bien entendu!









Ceci fait on obtient un fichier que l'on appellera WINNIE.SC5. Il reste à le mettre sur disquette (virtuelle) et faire un petit programme qui remplacera le fond blanc par un fond transparent!



10 Screen 5,2

20 Bload"winnie.sc5",s 'on charge l'image

30 color=restore ' 'on charge la palette

40 for i=0 to 255 ' une boucle pour l'horizontal

50 for j=0 to 212 ' une boucle pour la verticale

60 if point (i,j)=15 then pset(i,j),0 'on teste si le point courant est blanc(15), si oui on le met en transparent (0)

70 next:next ' au suivant!

80 Bsave"winnie.sc5",0,&h8000,s ' on sauvegarde le fichier (on peut changer le nom si on n'a pas confiance!)

90 End ' pour faire plaisir aux puristes :D



Le programme est aussi simple qu'il est long dans son déroulement, c'est le moment de se servir un petit thé:tea, (ou d'accélérer l'émulateur... ;) )



Il y a certainement plus simple en utilisant un logiciel MSX, mais cette pratique a le mérite de rendre un fichier SC5 enregistré en mode "standard" et de s'affranchir de la possession de ce logiciel .



Il n'y a plus qu'à trouver la bonne formule pour avoir la bonne animation sur un fond coloré grâce aux COPY...TPSET appropriés, mais ça c'est une toute autre histoire :heink


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 778

Le 08/11/2010 à 07h38
Salut,

Pour pouvoir simplifier le programme qui bougera Winnie, il faut corriger 2 choses sur l'image des "sprites":

- donner le même nombre d'animation à chaque Winnie.
- que les images de chaque Winnie soit de la même largeur x hauteur.


Après je te ferai un petit tuto ;)

Nota: Ton dernier Winnie n'est pas correctement affiché car il dépasse les 192, mais je ne comprends pas pourquoi ton ecran "msx" 'screen5)ne va que jusqu'à 192 et pas 212 pixels de hauteur.


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
KN2000 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 08/06/2010 à 09h30

Messages: 209

Le 08/11/2010 à 10h25
Peut être la ligne 90 ?
EDIT
En effet, le dernier Winnie de l'animation est le seul à faire parti de la dernière ligne.
Sur la ligne 90, l'instruction copy s'arrête en 192 au lieu de 212. Il se peut également que le fichier graphique ne comporte pas lui aussi les lignes en dessous de 192 si il a été sauvegardé avec un copy (0,0)-(255,192) to "a:Nom.ext" Edité par KN2000 Le 08/11/2010 à 10h37


Nous sommes en 2010 aps JC, toute la Gaule est envahie. Ah ben non, apparement, un village résiste encore aux envahisseurs Personalcomputerum et autres Consoledessalum. Bienvenue dans l'antre du emessix !
   
Walter Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 02/10/2009 à 19h33

Messages: 1883

Le 08/11/2010 à 13h57
Beau travail igal ! :)

Et avec un peu de pratique et quelques constantes, tu peux aussi attribuer des noms à tes coordonnées.

Ex:
10 X=200:Y=100
20 COPY(190,161)-(215,199),2TO(X,Y),0
30 ...

On peut encore simplifier. Mais n'allons pas trop vite. ;)
KN2000 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 08/06/2010 à 09h30

Messages: 209

Le 08/11/2010 à 16h06
Pour les collisions, surtout pas de test point par point sinon à chaque déplacement, tu vas pouvoir déguster beaucoup de :tea.
Il vaut mieux assimiler Winiie à un rectangle ainsi que l'autre sprite. Tester la collision revient à chercher si les rectangles se superposent.
Winnie wx1,wy1-wx2,wy2
PotDeMiel px1,py1-px2,py2

Si (wx1 > px1 et wx1<px2) et (wy1 > py1 et wy1 < py 2), Winnie attrappe un pot de miel ^^


Nous sommes en 2010 aps JC, toute la Gaule est envahie. Ah ben non, apparement, un village résiste encore aux envahisseurs Personalcomputerum et autres Consoledessalum. Bienvenue dans l'antre du emessix !
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 08/11/2010 à 16h45
KN2000 :
Pour les collisions, surtout pas de test point par point sinon à chaque déplacement, tu vas pouvoir déguster beaucoup de :tea.

Il vaut mieux assimiler Winiie à un rectangle ainsi que l'autre sprite. Tester la collision revient à chercher si les rectangles se superposent.

Winnie wx1,wy1-wx2,wy2

PotDeMiel px1,py1-px2,py2



Si (wx1 > px1 et wx1<px2) et (wy1 > py1 et wy1 < py 2), Winnie attrappe un pot de miel ^^






Ton équation à l'air géniale. Bon Allé vais m'occuper du pot de miel et quelques autres friandises :)



Poudoom poom poudoom poomm....Poudoom poom poudoom poom :)

C'est WINNIE qui va kiffer lol


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

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 778

Le 09/11/2010 à 02h12
Vite fait...

Pour mon tuto il faudrait une image de fond sur laquelle déplacer le personnage.


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 09/11/2010 à 10h33
MSXosaure :
Vite fait...



Pour mon tuto il faudrait une image de fond sur laquelle déplacer le personnage.




M'en occupe...:)


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

Conseiller Municipal

Rang

Avatar

Inscrit le : 27/08/2010 à 02h22

Messages: 1363

Le 09/11/2010 à 15h59
Finalement ca veut dire qu'un shoot demande moins de sprite de base qu'un jeux de platforme? car même si comme r-type on donne un petit effet de dérive avec les commandes haut bas il n'y a pas de modification sur les commandes avant arrière. intéressant cela
Google+    
KN2000 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 08/06/2010 à 09h30

Messages: 209

Le 09/11/2010 à 17h37
Au niveau joueur, on utilise moins de sprites dans les shoot'em up mais ce n'est pas obligatoire. Attention à la variété d'armement, tout de même. Par contre, les sprites partent dans les boss gigantesques et sur-animés :p
Dans les jeux de plate-forme, le joueur consomme pas mal de sprites dans les animations. Les ennemis aussi d'ailleurs ^^ Heureusement, il ne vaut mieux pas trop de personnages animés dans ce type de jeu car sinon c'est vite le foutoir... (tu sais plus dans qui tu tapes. bon à la limite, c'est pas si grave :D)
Mais, ce ne sont que des généralités. Si on utilise Goldorak dans un shoot'em up. Il va en consommer des sprites avec ses "planitrons", ses missiles "omega", ses "pulvoniums" qui vont nécessiter une animation des bras... (désolé pour les puristes mais je n'ai jamais vu écris à l'identique l'armement de Goldorak que ce soit sur les sites ou dans les BD) Edité par KN2000 Le 09/11/2010 à 17h40


Nous sommes en 2010 aps JC, toute la Gaule est envahie. Ah ben non, apparement, un village résiste encore aux envahisseurs Personalcomputerum et autres Consoledessalum. Bienvenue dans l'antre du emessix !
   
galine Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 27/08/2010 à 02h22

Messages: 1363

Le 09/11/2010 à 17h43
oO KN2000 ca pourrait etre une idée ca un shoot them up goldorak (mazinger z) sur msx il en existe un tres bon en shoot vertical (je ne sais pas quel mode est le mieu geré par le msx) chez psycho. Après bonjour la création du sprite vue les détails minimum que ce demande car pour une représentation réaliste de goldorak dans sa navette il y a du boulot j'imagine. Edité par galine Le 09/11/2010 à 17h45
Google+    
igal Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 09/11/2010 à 22h28
Bonsoir à tous.

Voici la dernière tablette de WINNIE.

En prime, Le pot de miel comme l'a suggéré Kn2000 :) et trois décors de fond en 16X16 Pixel qui est un multiple de 256 et 192 pour Msxosaure.
Des mini Winnie font leur aparition ^^

La même chose avec le gabarit.


Un décor de fond en 192X256 comme demandé par Msxosaure. (d'autres décors en 16 X 16 sur la page WINNIE au dessus.

lors du chargement du décor de fond, la palette est correctement affichée. Malheureusement, dès que la palette de WINNIE (animation) est chargée, celle ci vient altérer les bonnes couleurs.
J'ai essayer par de multiples facons (j'y ai passé toute l'après midi) de trouver une solution, mais je dois encore te demander de l'aide Msxosaure

Un panneau avec annonce: "Presser Start"* est ajouté.



AUTOEXEC.BAS.zip qui contient le tout.

Voici le dernier Autoexec.ASC avec les Longitudes et Latitudes de:
WINNIE STATIC
WINNIE DROITE
WINNIE GAUCHE
WINNIE HAUT
WINNIE BAS
POT PLEIN DE MIEL
POT VIDE
FLEUR
CAROTTE
DECOR DE FOND 1
DECOR DE FOND 2
DECOR DE FOND 3
Nb: A la demande de Msxosaure, toutes les animation WINNIE sont constitués de 8 blocs. Chaque bloc à la même dimension. Chaque succession de bloc répond à règle. Le tout peut facilement être remplacé par des variables.
Pareil pour Mini Winnie
Pareil pour les quatre Items (Fleur, Pot de miel plein, Pot de miel vide et carotte)
Pareil pour les quatre Fonds. (en 16 X16)

10 ' Facilite la lecture du texte basic en 80 colonnes.
20 WIDTH80
30 'Choix de la resolution et de la page a afficher.
40 SCREEN5,2
50 'Choix de la page de stockage de l'image
60 SET PAGE0,1
70 ' Chargement de l'imagede fond.
80 BLOAD"fond.sc5",S
90 COPY(0,0)-(255,192)TO(0,0),0
100 ' applique la palette de couleurs de l image.
110 COLOR=RESTORE
120 ' Chargement de l'image winnie.
130 BLOAD"winnie.sc5",S
140 COPY(0,0)-(255,192)TO(0,0),2
150 ' applique la palette de couleurs de l image.
160 COLOR=RESTORE
170 'prendre une bribe image de la page 2 et afficher sur la page 0.
180 LS=100:'Largeur Statique visible
190 HS=100:'Hauteur Statique visible
200 'Position d'attente en 8 images
210 COPY(0,0)-(25,37),2TO(LS,HS),0
220 COPY(26,0)-(51,37),2TO(LS,HS),0
230 COPY(52,0)-(77,37),2TO(LS,HS),0
240 COPY(78,0)-(103,37),2TO(LS,HS),0
250 COPY(104,0)-(129,37),2TO(LS,HS),0
260 COPY(130,0)-(155,37),2TO(LS,HS),0
270 COPY(156,0)-(181,37),2TO(LS,HS),0
280 COPY(182,0)-(207,37),2TO(LS,HS),0
290 LD=150: 'Largeur droit visible
300 HD=100: 'Hauteur droit visible
310 'Deplacement vers la droite 8 images.
320 COPY(0,38)-(25,75),2TO(LD,HD),0
330 COPY(26,38)-(51,75),2TO(LD,HD),0
340 COPY(52,38)-(77,75),2TO(LD,HD),0
350 COPY(78,38)-(103,75),2TO(LD,HD),0
360 COPY(104,38)-(129,75),2TO(LD,HD),0
370 COPY(130,38)-(155,75),2TO(LD,HD),0
380 COPY(156,38)-(181,75),2TO(LD,HD),0
390 COPY(182,38)-(207,75),2TO(LD,HD),0
400 LG=50: 'Largeur visible
410 HG=100: 'Hauteur gauche visible
420 'Deplacement vers la gauche 8 images.
430 COPY(0,76)-(25,113),2TO(LG,HG),0
440 COPY(26,76)-(51,113),2TO(LG,HG),0
450 COPY(52,76)-(77,113),2TO(LG,HG),0
460 COPY(78,76)-(103,113),2TO(LG,HG),0
470 COPY(104,76)-(129,113),2TO(LG,HG),0
480 COPY(130,76)-(155,113),2TO(LG,HG),0
490 COPY(156,76)-(181,113),2TO(LG,HG),0
500 COPY(182,76)-(207,113),2TO(LG,100),0
510 LH=1: 'Largeur haut visible
520 HH=100: 'Hauteur haut visible
530 ' Deplacement vers le haut 8 images.
540 COPY(0,114)-(25,151),2TO(LH,HH),0
550 COPY(26,114)-(51,151),2TO(LH,HH),0
560 COPY(52,114)-(77,151),2TO(LH,HH),0
570 COPY(78,114)-(103,151),2TO(LH,HH),0
580 COPY(104,114)-(129,151),2TO(LH,HH),0
590 COPY(130,114)-(155,151),2TO(LH,HH),0
600 COPY(156,114)-(181,151),2TO(LH,HH),0
610 COPY(182,114)-(207,151),2TO(LH,HH),0
620 LB=200: 'Largeur bas visible
630 HB=100: 'Hauteur bas visible
640 ' Deplacement vers le bas 8 images.
650 COPY(0,152)-(25,189),2TO(LB,HB),0
660 COPY(26,152)-(51,189),2TO(LB,HB),0
670 COPY(52,152)-(77,189),2TO(LB,HB),0
680 COPY(78,152)-(103,189),2TO(LB,HB),0
690 COPY(104,152)-(129,189),2TO(LB,HB),0
700 COPY(130,152)-(155,189),2TO(LB,HB),0
710 COPY(156,152)-(181,189),2TO(LB,HB),0
720 COPY(182,152)-(207,189),2TO(LB,HB),0
730 ' Implantation des decors
740 COPY(237,0)-(252,15),2TO(20,50),0
750 COPY(237,16)-(252,31),2TO(40,50),0
760 COPY(237,32)-(252,47),2TO(60,50),0
770 COPY(237,48)-(252,63),2TO(80,50),0
780 COPY(237,64)-(252,79),2TO(100,50),0
790 COPY(237,80)-(252,94),2TO(120,50),0
800 COPY(237,95)-(252,110),2TO(140,50),0
810 GOTO 210
820 'NEXT
830 'GOTO 110
840 SAVE"autoexec.bas

Nb: Si nécessaire, J'ajouterai les Longitudes et Latitudes de Mini Winnie. Edité par igal Le 09/11/2010 à 22h33


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

Le 09/11/2010 à 22h44
Je pensse , car il reste de la place sur la page animation de winnie, que de placer un morceau de l'image de fond sur celui-ci , te permetrait de gagner un fichier et de resoudre ton probleme de couleur^^



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

Conseiller Municipal

Rang

Avatar

Groupe : compte ++

Inscrit le : 29/07/2010 à 17h19

Messages: 5492

Le 09/11/2010 à 23h04
TurboSEB :
Je pensse , car il reste de la place sur la page animation de winnie, que de placer un morceau de l'image de fond sur celui-ci , te permetrait de gagner un fichier et de resoudre ton probleme de couleur^^




Lut Turboseb.



Je m’étais fais la même réflexion que toi et j'avais donc intégré trois décors en 16 X 16 tout à droite de WINNIE sous les Carottes, fleurs etc...


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