Bonjour,
J'ai réussie a faire des collision avec ma map mais le problème c'est quand il y a une collision je ne peut plus du tout bouger mon joueur
Je ne sais pas comment faire
le code qui fait la collision entre le player et la map
Le code qui dit que le player ne peut pas bouger
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public bool IsCollisionTile(Rectangle player) { foreach(Rectangle rect in this._collisionObject) { if (rect.Intersects(player)) { return true; } } return false; }
Le code de la variable cantWalk la fonction Update et la fonction setCantWalk dans la class Player.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (mapLoader.IsCollisionTile(player.getDestinationRect())) { player.setCantWalk(true); }
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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 private bool _cantWalk; public void Update() { this._destinationRectangle.X = (int)_position.X; this._destinationRectangle.Y = (int)_position.Y; this._destinationRectangle.Width = _texture.Width; this._destinationRectangle.Height = _texture.Height; if(Keyboard.GetState().IsKeyDown(Keys.Up)) { if (_cantWalk == false) { _position.Y--; } } else if (Keyboard.GetState().IsKeyDown(Keys.Down)) { if (_cantWalk == false) { _position.Y++; } } else if (Keyboard.GetState().IsKeyDown(Keys.Right)) { if (_cantWalk == false) { _position.X++; } } else if (Keyboard.GetState().IsKeyDown(Keys.Left)) { if (_cantWalk == false) { _position.X--; } } } public void setCantWalk(bool walk) { _cantWalk = walk; }
Merci de m'aider
Partager