Problème avec mes collision
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:
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:
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:
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