La Place des Développeurs collision de sprites
ericb59
Membre non connecté
Conseiller Municipal
lors d une collision de sprites, y a t il moyen de connaitre les numeros des sprites qui rentrent en collision ? cette info est elle quelque part dans un registre ou ailleurs ?
Non, il y a juste l'information de la collision sur le bit 5 de S#0 et les coordonnées du conflit dans S#3, S#4, S#5 et S#6.
Copier vers le presse-papierCode :
Figure 4.70 Readout of the conflict coordinate
MSB 7 6 5 4 3 2 1 0 LSB
----------------------------------------- --+
S#3 | X7 | X6 | X5 | X4 | X3 | X2 | X1 | X0 | |
----------------------------------------- | X-coordinate where the
| conflict occurred
----------------------------------------- |
S#4 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | X8 | |
----------------------------------------- --+
----------------------------------------- --+
S#5 | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 | |
----------------------------------------- | Y-coordinate where the
| conflict occurred
----------------------------------------- |
S#6 | 1 | 1 | 1 | 1 | 1 | 1 | Y9 | Y8 | |
----------------------------------------- --+
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)
ericb59
Membre non connecté
Conseiller Municipal
oui je sais, mais c'est pas cool !
Comme j'ai un personnage qui est composé de 4 sprites superposés, je suis toujours dans un état de collision de sprites, et donc une routine de détection avec coordonnées risque fort de me ralentir...
Comme j'ai un personnage qui est composé de 4 sprites superposés, je suis toujours dans un état de collision de sprites, et donc une routine de détection avec coordonnées risque fort de me ralentir...
je ne sais pas dans quel mode tu travailles mais en screen 4 a 8 il y a une mode de sprites améliorés
on peux affecter une couleur par ligne du sprite avec une fonction color sprite$
trés bien expliqué dans le livre guide du msx basic version 2.0 de Sony livré avec le HB700
on peux affecter une couleur par ligne du sprite avec une fonction color sprite$
trés bien expliqué dans le livre guide du msx basic version 2.0 de Sony livré avec le HB700
TurboSEB
Membre non connecté
Conseiller Municipal
livre dispo sur le site de MSXLegend (entre autres) :
http://www.msxlegend.sitew.com/Livres_et_Notices.A.htm#Livres_et_Notices.A
Ce livre etant bien fait serait pratique sur le site en telechargement , il vaut mieux multiplier les sources
http://www.msxlegend.sitew.com/Livres_et_Notices.A.htm#Livres_et_Notices.A
Ce livre etant bien fait serait pratique sur le site en telechargement , il vaut mieux multiplier les sources
MSX 1&2 + Moniteurs+divers (environ 0.70Tonnes)
ericb59
Membre non connecté
Conseiller Municipal
j utilise les instruction color sprite.
j ai realisé les sprites avec tiny sprite, en mode msx2 avec la palette par defaut.
Pour mon personnage principale il m a généré 4 sprites, que je dois supperposer pour obtenir les bonnes couleurs. il y a plus de deux couleurs par lignes.
j ai realisé les sprites avec tiny sprite, en mode msx2 avec la palette par defaut.
Pour mon personnage principale il m a généré 4 sprites, que je dois supperposer pour obtenir les bonnes couleurs. il y a plus de deux couleurs par lignes.
Fabf
Membre non connecté
Conseiller Municipal
ericb59
Membre non connecté
Conseiller Municipal
les deplacer n est pas le probleme.
mon probleme serait de detecter des collisions avec d autres sprites, mais si faut que je tests les coodonnees c est pas genial....
mon probleme serait de detecter des collisions avec d autres sprites, mais si faut que je tests les coodonnees c est pas genial....
igal
Membre non connecté
Conseiller Municipal
j'y connais pas grand chose, mais il me semble que tu peux déterminer si il y a collision, juste en déterminant une couleur précise.
1) Par exemple, tu détermine que la couleur 16 provoque une collision!
2) Tu colories en COULEUR 16 tout les objets dont tu veux faire un obstacle.
3) Le seul soucis est que t'es obligé de colorier en 16 les obstacles ce qui limite la variété des obstacles.
4) La solution est de colorier le contour de n'importe quel objet avec de la couleur 16 de sorte à transformer l'objet en obstacle.
Me demande pas comment on fait, encore une fois, j'y connais vraiment pas grand chose.
1) Par exemple, tu détermine que la couleur 16 provoque une collision!
2) Tu colories en COULEUR 16 tout les objets dont tu veux faire un obstacle.
3) Le seul soucis est que t'es obligé de colorier en 16 les obstacles ce qui limite la variété des obstacles.
4) La solution est de colorier le contour de n'importe quel objet avec de la couleur 16 de sorte à transformer l'objet en obstacle.
Me demande pas comment on fait, encore une fois, j'y connais vraiment pas grand chose.
Visiteur
Vagabond
Message : 0
Tu utilises une couleur comme masque de collision.
Une couleur est dédiée à la définition d'un obstacle qui provoque un évenement.
L'inconvénient, comme le souligne Igal, est que ça uniformise les obstacles (c'est pour cela qu'on défini les contours uniquement avec la couleur «collision».
Les avantages de la technique:
+ tu n'es plus limité en dimension pour l'obstacle, comme le serait un sprite.
+ cela te libère des sprites
Les inconvénients:
- ça consomme des ressources (il faut lire la mémoire video ce qui est couteux en temps d'accès)
- il faut bien souvent tester à plusieurs endroits de tes personnages, à moins que tu ne fasse «les aventures de Mr Pixel et des amis» ce qui va limiter la teille des personnages
- si tu ne fais pas bien ton test, ou que tu loupes un cycle, le point de test de ton personnage peut se retrouver à l'intérieur de l'obstacle. Dans ce cas, soit ça bugge complètement (crash car tu vas te retrouver à des endroits pas prévus dans la mémoire video), soit tu te retrouves «prisonnier» à l'intérieur de l'obstacle. À moins d'avoir un thème surréaliste, ce n'est pas souhaitable.
Je suis resté dans des généralités, mais les vrais codeurs MSX pourront compléter avec les particularités de la plateforme.
Une couleur est dédiée à la définition d'un obstacle qui provoque un évenement.
L'inconvénient, comme le souligne Igal, est que ça uniformise les obstacles (c'est pour cela qu'on défini les contours uniquement avec la couleur «collision».
Les avantages de la technique:
+ tu n'es plus limité en dimension pour l'obstacle, comme le serait un sprite.
+ cela te libère des sprites
Les inconvénients:
- ça consomme des ressources (il faut lire la mémoire video ce qui est couteux en temps d'accès)
- il faut bien souvent tester à plusieurs endroits de tes personnages, à moins que tu ne fasse «les aventures de Mr Pixel et des amis» ce qui va limiter la teille des personnages
- si tu ne fais pas bien ton test, ou que tu loupes un cycle, le point de test de ton personnage peut se retrouver à l'intérieur de l'obstacle. Dans ce cas, soit ça bugge complètement (crash car tu vas te retrouver à des endroits pas prévus dans la mémoire video), soit tu te retrouves «prisonnier» à l'intérieur de l'obstacle. À moins d'avoir un thème surréaliste, ce n'est pas souhaitable.
Je suis resté dans des généralités, mais les vrais codeurs MSX pourront compléter avec les particularités de la plateforme.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie