我正在寻找一种方法来测试节点是否在屏幕一侧和移动墙之间被挤压(如垃圾压缩机)。
在视觉上,屏幕右侧有一个正方形,然后一个垂直的矩形将它推向屏幕的左侧。
我的墙和玩家节点都有物理机构,墙壁以恒定的速度在玩家身上移动。显然,在某一点上,墙壁会与玩家重叠,因为墙壁没有足够的空间来推动玩家。有没有办法检测节点之间的重叠?
我尝试过使用此功能: (墙壁正在屏幕左侧压制玩家)
if (playerNode.position.x + playerNode.size.width/2 > wallNode.position.x-wallNode.size.width)
{
//Do whatever
}
但这非常挑剔,如果有的话,我宁愿使用内置于物理引擎中的东西 谢谢!
答案 0 :(得分:0)
好吧,我已经找到了解决方案 -
如果您使用:
if ((playerNode.intersectsNode(wallNode) != nil)
{
//Do whatever
}
你得到了我正在寻找的确切结果。玩家和墙壁仍然正常碰撞,但如果玩家被压入墙壁,则会调用此动作。我只是把这个if-then放到方法中:
override func update(currentTime: CFTimeInterval) {
}