【发布时间】:2012-04-09 08:15:53
【问题描述】:
好的,所以,我正在制作一个基于瓷砖的小型挖掘游戏,现在我想做碰撞。我将如何正确地做到这一点?我知道如何检查玩家是否与瓷砖碰撞,但我不知道如何让玩家在撞到墙上时停下来。
这就是游戏,我这里有 20x20 块。
这是我使用 atm 的代码:
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吗? -
@Marty Wallace:嗯,我正在做某种克隆,是的。