La Place des Développeurs "Diddy kong" petit programme basic en screen 8 test: animation du personnage
Reprise du message précédent
Oui, c'est effectivement ça la solution ...Quand je disais qu'il n'y a pas de couleur transparente en SCREEN8, je voulais dire qu'il n'est pas possible de mettre un pixel en couleur transparente. Mais par contre, effectivement, lors des copies via les macros du VDP (exploitées en BASIC), il est possible d'utiliser cette option.
Pour rappel, avec TPSET (SC = couleur de la source; DC = couleur de la destination), pour chaque pixel :
- si SC=0, alors DC=DC
- sinon DC=SC
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)

tpset ça me dit quelque chose
et non je ne l'ai pas mis
Je sais déja qu'il faut copier la rangé du decor en page 1 (il me reste un petit peu de place) puis je copie le décor page 1 a l'emplacement de mon personnage en page 1, j'integre ensuite mon personnage sur le decor 41x41 copié en page 1 puis je copie l'ensemble en page 0 à l'emplacement du perso
(je sais c'est pas très clair
)
test ce soir...
merci Edité par MSXlegend Le 04/10/2012 à 14h38


Je sais déja qu'il faut copier la rangé du decor en page 1 (il me reste un petit peu de place) puis je copie le décor page 1 a l'emplacement de mon personnage en page 1, j'integre ensuite mon personnage sur le decor 41x41 copié en page 1 puis je copie l'ensemble en page 0 à l'emplacement du perso


test ce soir...
merci Edité par MSXlegend Le 04/10/2012 à 14h38
Mon Github -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Demo Terminator2 T2.zip

Il me semble pas que tu retombe sur tes pattes comme ça
Perso je ferais comme ça
Copie décor en page 1
Copie perso en page 0
Là, tu peux recopier décor en page 1 vers page 0 pour effacer le perso
Modif coordonnées perso
Reboucle au début
mais je suis pas un killer en programmation
Regarde sur le moteur d'osaure tu aura la meilleur solution

Perso je ferais comme ça
Copie décor en page 1
Copie perso en page 0
Là, tu peux recopier décor en page 1 vers page 0 pour effacer le perso
Modif coordonnées perso
Reboucle au début
mais je suis pas un killer en programmation

Regarde sur le moteur d'osaure tu aura la meilleur solution


En fait je n'ai que 2 pages. Page 0 (s'efface en sortant du programme) et page 1 qui lui garde l'image chargé.
Le probleme, c'est que je n'ai qu'un page pour travailler. La page 0 etant le resultat final.
Le principe est simple. Il me faut un double de la page 0 (fond d'ecran) sinon celui ci s'effacera au fur et a mesure que mon perso avance....
je doit donc copier une partie de la page 0 (la zone ou mon perso se deplace) dans le peu de place qu'il me reste en page 1.
donc je procede comme suis:
1-je copie une zone de mon fond d'ecran (correspondant a la position de donky) sauvegardé en page 1 dans une zone de libre en vram page 1 (41x41)
2-je fusionne dans la même page le perso (avec la bonne annimation) de 41x41 avec tpset sur mon fond 41x41
3-normalement, j'obtien un carré 41x41 avec mon perso et le fond d'ecran . Je copie donc celui ci a l'emplacement ou il est censé se trouver en page 0
Résultat, on n y voit que du feu, le perso se deplace sans bande noire. L'inconvéniant, c'est que ça ralenti considérablement l'annimation. En effet, il y a 3 copy par boucle: fond banane 41x41+perso41x41= ensemble a copier en page 0
verdic ce soir si je n'ai pas trop mal au crane
Edité par
MSXlegend
Le 04/10/2012 à 17h00
Le probleme, c'est que je n'ai qu'un page pour travailler. La page 0 etant le resultat final.
Le principe est simple. Il me faut un double de la page 0 (fond d'ecran) sinon celui ci s'effacera au fur et a mesure que mon perso avance....
je doit donc copier une partie de la page 0 (la zone ou mon perso se deplace) dans le peu de place qu'il me reste en page 1.
donc je procede comme suis:
1-je copie une zone de mon fond d'ecran (correspondant a la position de donky) sauvegardé en page 1 dans une zone de libre en vram page 1 (41x41)
2-je fusionne dans la même page le perso (avec la bonne annimation) de 41x41 avec tpset sur mon fond 41x41
3-normalement, j'obtien un carré 41x41 avec mon perso et le fond d'ecran . Je copie donc celui ci a l'emplacement ou il est censé se trouver en page 0
Résultat, on n y voit que du feu, le perso se deplace sans bande noire. L'inconvéniant, c'est que ça ralenti considérablement l'annimation. En effet, il y a 3 copy par boucle: fond banane 41x41+perso41x41= ensemble a copier en page 0
verdic ce soir si je n'ai pas trop mal au crane

Mon Github -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Demo Terminator2 T2.zip

MSXlegend :
En fait je n'ai que 2 pages. Page 0 (s'efface en sortant du programme) et page 1 qui lui garde l'image chargé.
Le probleme, c'est que je n'ai qu'un page pour travailler. La page 0 etant le resultat final.
Le principe est simple. Il me faut un double de la page 0 (fond d'ecran) sinon celui ci s'effacera au fur et a mesure que mon perso avance....
Le probleme, c'est que je n'ai qu'un page pour travailler. La page 0 etant le resultat final.
Le principe est simple. Il me faut un double de la page 0 (fond d'ecran) sinon celui ci s'effacera au fur et a mesure que mon perso avance....
J'ai eu le même problème pour CarWar en mode 8 (2 pages). La solution que j'ai choisi c'est d'utiliser la marge en bas des pages pour sauvegarder le décors sous mes voitures. Chaque frame, avant de déplacer mon sprite, je commence par l'effacer avec le bout de décor sauvegardé, puis je sauvegarde le bout de décors à la prochaine position, puis je re-dessine mon sprite a sa nouvelle position.
Si la résolution est en 256x212, tu as une marge de 256x44 sur chaque page pour stocker des données non visible.
EDIT : En relisant ton post, j'ai l'impression que c'est déjà plus ou moins ce que tu fais.

On est toujours ignorant avant de savoir.

c'est une bonne vielle méthode des années 80-90 
On fait avec les moyens dubord d'une page 
Edité par MSXlegend Le 04/10/2012 à 18h09

On fait avec les moyens du

Edité par MSXlegend Le 04/10/2012 à 18h09
Mon Github -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Demo Terminator2 T2.zip

Par contre plus de place pour faire mon perso dans l'autre sens, mais il me semble que je peux inverser mon perso dans l'autre sens du genre :
copy(x+41,y)-(x,y+41),1 to (0,0),0 au lieu de copy(x,y)-(x+41,y+41),1 to (0,0),0
je ne sais pas si cela fonctionne, ça remonte à plus de 20 ans quand même
copy(x+41,y)-(x,y+41),1 to (0,0),0 au lieu de copy(x,y)-(x+41,y+41),1 to (0,0),0
je ne sais pas si cela fonctionne, ça remonte à plus de 20 ans quand même

Mon Github -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Demo Terminator2 T2.zip
pour inverser l'image horizontalement ou verticalement il faut d'abord la copier dans une variable tableau
ensuite il faut recopier cette variable tableau avec un paramétre de 0 a 3 suivant l'orientation
voir page 131 et plus du bouquin Guide du MSX Basic Version 2.0 de Sony
ensuite il faut recopier cette variable tableau avec un paramétre de 0 a 3 suivant l'orientation
voir page 131 et plus du bouquin Guide du MSX Basic Version 2.0 de Sony

MSXlegend :
c'est une bonne vielle méthode des années 80-90 

J'ai commencé a programmer sur PC après 95.

Je redécouvre donc les astuces de l'époque 8 bits.
On est toujours ignorant avant de savoir.
les éléments mobiles en screen8 avec COPY TPSET c'est toujours délicat...
J'avais fait ça à une autre époque:
Gods Démo (MSXosaure - 2008) MSX2 par MSXosaure
gods.zip
J'avais fait ça à une autre époque:
Gods Démo (MSXosaure - 2008) MSX2 par MSXosaure
gods.zip
Le MSXien le plus à l'ouest




Jipe :
pour inverser l'image horizontalement ou verticalement il faut d'abord la copier dans une variable tableau
ensuite il faut recopier cette variable tableau avec un paramétre de 0 a 3 suivant l'orientation
voir page 131 et plus du bouquin Guide du MSX Basic Version 2.0 de Sony
ensuite il faut recopier cette variable tableau avec un paramétre de 0 a 3 suivant l'orientation
voir page 131 et plus du bouquin Guide du MSX Basic Version 2.0 de Sony
Merci Jipé, j'ai vu dans mon guide

MSXosaure :
les éléments mobiles en screen8 avec COPY TPSET c'est toujours délicat...
J'avais fait ça à une autre époque:
gods.zip
J'avais fait ça à une autre époque:
gods.zip
je me rappel de ta demo en screen 8. en attendant de regarder ça, c'est bien le color 0 que je doit parametrer en transparence? Edité par MSXlegend Le 04/10/2012 à 21h55
Mon Github -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Demo Terminator2 T2.zip
MSXlegend :
c'est bien le color 0 que je doit parametrer en transparence?
Oui, c'est la couleur 0 que tu dois utiliser pour permettre la transparence lors de la copie.
Comme je l'ai déjà écrit plus haut :
Metalion :
Edité par
Metalion
Le 05/10/2012 à 08h10
Pour rappel, avec TPSET (SC = couleur de la source; DC = couleur de la destination), pour chaque pixel :
- si SC=0, alors DC=DC
- sinon DC=SC
- si SC=0, alors DC=DC
- sinon DC=SC
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)

Voila j'ai resolu le probleme. J'ai oublié de mettre set page 0,1 (page 1 active)
maintenant il y a donky et les bananes


le menu titre est encore brouillon et mon travail inachevé, le perso n'est pas jouable pour le moment mais ça viendra
Donkey Kong the demo à télécharger Edité par MSXlegend Le 07/10/2012 à 11h32
maintenant il y a donky et les bananes



le menu titre est encore brouillon et mon travail inachevé, le perso n'est pas jouable pour le moment mais ça viendra

Donkey Kong the demo à télécharger Edité par MSXlegend Le 07/10/2012 à 11h32
Mon Github -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Demo Terminator2 T2.zip

Jipe :
pour inverser l'image horizontalement ou verticalement il faut d'abord la copier dans une variable tableau
ensuite il faut recopier cette variable tableau avec un paramétre de 0 a 3 suivant l'orientation
voir page 131 et plus du bouquin Guide du MSX Basic Version 2.0 de Sony
ensuite il faut recopier cette variable tableau avec un paramétre de 0 a 3 suivant l'orientation
voir page 131 et plus du bouquin Guide du MSX Basic Version 2.0 de Sony
J'ai appliqué la méthode indiqué, et ça m'a mis syntaxe Error. Je vais étudier ça et faire des tests avec une simple image.
Mon Github -> github.com/msxlegend
challenge 2013 -> neodream MSX 2013
Concepteur du -> KCX Bluetooth transmitter
Demo Terminator2 T2.zip
le plus dur c'est la formule de la variable tableau
pour les essais il vaut mieux utiliser celle de la page 132 avec
s=int((((absx1-x2)+1*(abs(y1-y2)+1*taille pixel+7)/8+4)/8)+1 taille pixel étant 8 en screen8
dim p(s)
aprés on peut simplifier pour calculer x1-x2 et y1-y2 en valeur absolue
pour les essais il vaut mieux utiliser celle de la page 132 avec
s=int((((absx1-x2)+1*(abs(y1-y2)+1*taille pixel+7)/8+4)/8)+1 taille pixel étant 8 en screen8
dim p(s)
aprés on peut simplifier pour calculer x1-x2 et y1-y2 en valeur absolue

Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie