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
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 qui dit que le player ne peut pas bouger
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
if (mapLoader.IsCollisionTile(player.getDestinationRect()))
{
        player.setCantWalk(true);
}
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
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