Collision entre deux images pour un jeu ...

Collision entre deux images pour un jeu ... - C++ - Programmation

Marsh Posté le 17-09-2004 à 17:39:00    

Bonjour,
 
Je réalise un petit jeu-video dans lequel un avion monte et descend en évitant des objets via un scroll horizontale de l'écran.
L'avion et les objets sont des Bitmap pointant sur des fichier images.
Il en resulte que dans le logiciel l'avion est un carré et les projectile aussi...
Pour les collisions ceci pose un probleme car meme si l'avion en lui meme evite le missile, etant donnée que l'avion est en fait un carré et que le missile aussi il y aura une collision car je ne peux me reperer qu'a la position du Bitmap et non de l'image en question ...
 
Ma question est donc : avez vous une solution pour gérer ce genre de probleme ou y a t'il d'autre composant à utiliser pour realiser ce genre de projet?
 
Merci d'avance

Reply

Marsh Posté le 17-09-2004 à 17:39:00   

Reply

Marsh Posté le 17-09-2004 à 17:56:33    

tu test l'overlapping des rectangles si il y a collision tu
calcul les positions relatives ds deux carrés et tu regarde si les pixels en overlapping sont transparents ou non.

Reply

Marsh Posté le 17-09-2004 à 18:01:10    

Merci je n'ai absoluement aucune notion de comment tester si un pixel est transparent ou pas mais je vais m'y atteler, la méthode à l'air bonne.
De toute façon si je traite la collision des qu elle se produit le nombre de pixel ne peut etre qu'au maximum d'une ligne ...

Reply

Marsh Posté le 17-09-2004 à 18:19:57    

Grosso modo oui.
 
Pour la transparence, tu as bien une couleur qui est celle du fond ? ou utilsies tu le channel alpha ?

Reply

Marsh Posté le 17-09-2004 à 18:35:56    

oui tu as raison je suis bete, la transparence c'est la couleur que j'ai defini en tant que tel ...
Merci pour tout Joel :)

Reply

Marsh Posté le 17-09-2004 à 19:50:16    

Je crois me rappeler que la librairie Allegro fournit des exemples illustrant ceci.

Reply

Marsh Posté le 17-09-2004 à 22:11:45    

on appel ca pixel perfect collision

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed