La Place des Développeurs collision de sprites
Visiteurs
Vagabond
Message : 0
Reprise du message précédent
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.
Il y a moyen de désactiver la détection du conflit entre certains sprites (dans le mode 2), en utilisant le bit CC dans la table de couleurs des sprites. Cela permet d'avoir un sprite complexe (composé de plusieurs sprites) sans déclencher un conflit.
(voir le paragraphe 5.3.2 dans le MSX2 Technical Handbook)
(voir le paragraphe 5.3.2 dans le MSX2 Technical Handbook)
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
ok, je vois le principe...
Ca n'a pas l'air moins gourmand en ressource que de faire des tests sur les coordonnées.
@metalion : je travaille en screen 8, et peut être que je vais passer en screen 10
Ca n'a pas l'air moins gourmand en ressource que de faire des tests sur les coordonnées.
@metalion : je travaille en screen 8, et peut être que je vais passer en screen 10
ericb59 :
@metalion : je travaille en screen 8, et peut être que je vais passer en screen 10
Juste pour être sur qu'on parle de la même chose : quand je dis "mode 2", je parle du mode 2 des sprites (le mode MSX2), qui est valable dans tous les modes graphiques.
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
ah oui ok metalion, j'avais compris "screen2"
Effectivement j'utilise des sprites en mode 2, y a t'il moyen de faire cette desactivation en basic ?
Je vais tacher de récupérer le bouquin dont tu parles...
Effectivement j'utilise des sprites en mode 2, y a t'il moyen de faire cette desactivation en basic ?
Je vais tacher de récupérer le bouquin dont tu parles...
oui il y a possibilité en ajouté 16 à la valeur de la couleur qui devient alors insensible aux collisions.
Tu peux avoir quelques infos en décortiquant mon travail ICI
Tu peux avoir quelques infos en décortiquant mon travail ICI
Le MSXien le plus à l'ouest ... ou presque
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie