是否可以检测节点是否仅在一侧与另一侧发生碰撞?
例如,与另一只动物对抗的动物。在那种情况下,调用碰撞检测方法。但是,当动物跳过一只动物并且#34;走路时#34;在它上面,碰撞检测不会被激活。
我很感激每一个答案。 感谢
我的代码:
if (lionNode.frame.origin.y + lionNode.frame.size.height < animalNode.frame.origin.y) {
NSLog(@"Walk");
}
else {
NSLog(@"dead");
}
答案 0 :(得分:1)
在碰撞检测回调中检查以下内容。
if(y-origin of the first animal + its height < the y-origin of the second animal){
//then do the logic for walking on top of another animal (probably nothing would happen here depending on what you are trying to build)
}
else {
//forward to collision logic (e.g life loss, lose points, restart level ,etc..)
}
如果第一只动物可能会进入第二只动物的下方,那么您需要将您的病情更新为以下
if(firstAnimal.origin.y + firstAnimal.frame.size.height < secondAnimal.frame.origin.y
|| firstAnimal.origin.y > secondAnimal.frame.origin.y + secondAnimal.frame.size.height)
要警惕不同的坐标系,有时可能会让人感到困惑。 希望这有帮助,随时可以询问是否有任何不清楚的地方。
答案 1 :(得分:0)
在以太的情况下会调用碰撞检测,但在回调中你可以比较速度向量;如果他们彼此离开,就把它视为未命中。