Bonjour tout le monde.
Je suis confronté à un souci de compréhension d'un tuto, et personne sur leur forum ne semble être présent.
Alors je me permets de vous soumettre le problème en espérant ne pas trop déranger.
Donc le tuto ce trouve sur ce site : http://xna-france.com/?p=71.
Ce là en particulier traite des colisions mais ne dispose pas des source corrigée et reste assez superficiel sur le détail en renvoyant aux autres tutos, que j'ai suivi du reste.
Donc là j'en sui à ça :
Une classe pour le jeux qui s'appelle froger.cs, une classe pour le héro qui s'appelle hero.cs et une classe pour les ennemis qui s'appelle enemy.cs.
Dans le froger.cs j'ai mis une fonction comme cela :
e1 et re1 sont des varaibles déclarées ailleurs dans la classe de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public void collisionEnnemy() { rFrog = frogy.RectCol; re1 = e1.RectCol; re2 = e2.RectCol; re3 = e3.RectCol; re4 = e4.RectCol; if (rFrog.Intersects(re1)) frogy.Dead = true; if (rFrog.Intersects(re2)) frogy.Dead = true; if (rFrog.Intersects(re3)) frogy.Dead = true; if (rFrog.Intersects(re4)) frogy.Dead = true; }
Et elle sont remplis de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Ennemy e1; Rectangle rFrog, re1;
ceci étant appelé dans le Initialize de la classe froger.cs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void InitEnnemy() { e1 = new Ennemy(this, this.graphics, this.Content, this.graphics.PreferredBackBufferWidth, this.graphics.PreferredBackBufferHeight - 150, 1, "g");
Ensuite dans l upadte de hero.cs je fais cela :
En haut de la classe hero.cs j'ai fais cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 game.collisionEnnemy(); if (dead == true) { DrawDead(gameTime); }
pour pouvoir gérer la chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public bool Dead { get { return dead; } set { dead = value; } } private bool dead;
Lorsque je lance le jeu, il ne détecte aucune colision avec la balle e1 et je vois pas ce que j'ai loupé.
J'espère avoir été suffisament clair dans ma présentation.
Merci pour votre aide.
Partager