我有一个玩家矩形和一个墙矩形。我试图确定玩家从哪一侧撞墙。
例如,如果玩家从左侧撞到墙壁,则玩家不能继续穿过墙壁,但可以向上,向下或向右移动。
如何确定玩家从哪一侧撞墙?
答案 0 :(得分:0)
在更新玩家的位置和矩形之前,请保留旧矩形的记录,以便将其与新位置进行比较。例如:
// Keep a record of old rectangle
Rectangle oldPos = player.Rectangle;
// Update player position and rectangle here
// Check for collision
if (player.Rectangle.Intersects(wallRect))
{
// Player has hit the wall. Now to find out which direction it has come from
if (oldRect.Center.X < wallRect.Center.X)
{
// Player came from left of wall
}
else
{
// Player came from right of wall
}
}
尝试使用此模板并将游戏逻辑运用到其中。