Итак, я делаю небольшую игру на копании на основе плитки, теперь я хочу совершить столкновение. Как я буду делать это правильно? Я знаю, как проверить, сталкивается ли игрок с плиткой, но я не знаю, как на самом деле заставить игрока остановиться, когда он ударит по стене.Tile Engine Collision
Это игра, я 20x20 плитки здесь.
Это код, я использую атм:
foreach (Tile tiles in allTiles)
{
if (ply.rect.Intersects(tiles.rect))
{
if (tiles.ID != -1 && tiles.ID != 1)
{
if (ply.X > tiles.X)
{
Console.WriteLine("Right part.");
ply.X = tiles.pos.X + 30;
}
if (ply.X <= tiles.X)
{
Console.WriteLine("Left part.");
ply.X = tiles.pos.X - 30;
}
if (ply.Y > tiles.Y)
{
Console.WriteLine("Bottom part.");
ply.Y = tiles.pos.Y + 30;
}
if (ply.Y <= tiles.Y)
{
Console.WriteLine("Upper part.");
ply.Y = tiles.pos.Y - 30;
}
}
}
}
Вы делаете ['Terraria'] (http://terraria.org/)? – Marty
@ Марти Уоллес: Ну, я делаю кое-что из клона, да. – Stan
Ah, Awesome^_^ – Marty