Actuellement, j'ai du mal à faire en sorte qu'un sprite apparaisse solide en utilisant des boîtes de collision. Les collisions fonctionnent très bien avec le code ci-dessous.
La position est la position principale du personnage sur la carte. character2 est le nom d'un sprite de 18 x 28 avec lequel le personnage principal va entrer en collision.
Lorsque le personnage principal entre en collision avec le sprite character2, j'ai essayé d'ajuster la position en conséquence (EX: Position.X -=1;) mais cela fait simplement glisser mon sprite principal en arrière jusqu'à ce qu'il ne se superpose plus.
J'ai l'impression que c'est quelque chose de très simple, mais pour ma vie, je n'arrive juste pas à comprendre.
En résumé de ma question : Comment faire en sorte que le sprite character2 apparaisse solide lors d'une collision ?
Même si mon sprite principal s'arrête lors de la collision (en réduisant la vitesse à 0), il reste bloqué là, la déclaration if entrant dans une boucle infinie.
float x1 = Position.X;
float y1 = Position.Y;
float x2 = x1 + character2.Width;
float y2 = y1 + character2.Height;
BoundingBox b1 = new BoundingBox(new Vector3(x1, y1, 0),
new Vector3(x2, y2, 0));
BoundingBox b2 = new BoundingBox(new Vector3(Position2.X, Position2.Y, 0),
new Vector3(x2, y2, 0));
if (Collision(b1, b2))
{
// ????
}