MSX Village forum

La Place des Développeurs collision de sprites

Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 26/08/2012 à 23h08

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.
   
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 27/08/2012 à 09h17
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)


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

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 27/08/2012 à 09h36
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


banniere-ericb59e
Site web    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1487

Le 27/08/2012 à 10h28
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

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 27/08/2012 à 11h55
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...


banniere-ericb59e
Site web    
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 777

Le 27/08/2012 à 14h06
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


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie