【发布时间】:2015-07-22 10:20:47
【问题描述】:
我试图在碰撞后制造障碍物来阻止玩家。简单来说就是墙壁。
我已经创建了碰撞检测,如下所示:
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)(顺便说一下,我正在使用鼠标来控制我的角色)。我希望它停在他碰撞的地方,并且无法穿过这堵墙。
我该怎么做?
【问题讨论】:
-
你知道碰撞前角色的最后一个位置吗?
-
这也是问题所在,因为字符的位置与鼠标指针的位置有关。就像 " if (x = move.x) x = move.x; } " 对其余方向以此类推(x 是角色的 X, move.x 是鼠标的 X)。