Le problème du jour est le suivant:
Il s'agit de faire en C une fonction qui permettrait de détecter lorsque 2 sprites entrent en collision.
Données du problème:
Les sprites entrant en collision ont une largeur 'W' et une hateur 'H'. Ces valeurs peuvent changer. Ainsi, un sprite de HxW peut entrer en collision avec un sprite de HxW.
On aurait ainsi une fonction ayant l' entête suivante:
bool SpriteCollide(SPRITEDESC s1, SPRITEDESC s2);
avec en sortie un booléen qui dit vrai si les sprites entrent en collision, faux sinon.
SPRITEDESC étant une structure simple:
typedef struct _SPRITEDESC { POINT location; DIRECTION direction; SIZE size; unsigned short* table; unsigned short* masks; } SPRITEDESC, *PSPRITEDESC; typedef struct _POINT { int x, y; } POINT, *PPOINT; typedef struct _SIZE { int cx, cy; } SIZE, *PSIZE; typedef enum _DIRECTION { DIRECTION_NONE, DIRECTION_UP, DIRECTION_DOWN, DIRECTION_LEFT, DIRECTION_RIGHT, } DIRECTION;
Certain sprites peuvent bouger (personnages et ennemies) et d'autres sont statiques. Pour les sprites qui peuvent bouger, il faut tenir compte de la directon. Les sprites statiques ont l'attribut DIRECTION_NONE.
Merci d'avance pour le coup de main.
Cordialement.
Fred.