我试图制造障碍,在碰撞后阻止玩家。简单地说,墙壁。
我已经创建了碰撞检测,如下所示:
if (x > (wall.x1 - wall.boundX) && x < (wall.x + wall.boundX) &&
y >(wall.y1 - wall.boundY) && y < (wall.y + wall.boundY))
{
x = 0;
y = 0;
}
但是,正如你所看到的,它只是将我的玩家对象返回到地图上的(0,0)(顺便说一下,我用鼠标控制我的角色)。我想让它停在他碰撞的地方,并且无法穿过这堵墙。
我该怎么做?
答案 0 :(得分:0)
您需要将if
语句分开处理以分别处理每个墙,然后将x
或y
位置设置为墙的边界:
if (x > wall.x1 - wall.boundX)
x = wall.x1 - wall.boundX;
if (x < (wall.x + wall.boundX))
x = wall.x + wall.boundX;
// etc
无论鼠标试图越过墙壁的范围多远,它都会保持在那个位置。