一个物理体对象可以有两个不同的contactTestBitMask吗?我正在使用Objective-C制作我的第一个游戏,但我有一个物体(玩家)可以与两个不同的物体(物体1和物体2)发生碰撞,并在与一个或另一个碰撞时做不同的事情,所以我有这一行:
player.physicsBody.contactTestBitMask = object1Category | object2Category;
但问题在于,当我使用-didBeginContact
方法时,当玩家与object1
发生碰撞时会执行一些代码,但是当玩家与object2
发生碰撞时会执行相同的代码当它与object1发生碰撞时,我希望玩家在与object2发生碰撞时执行一些不同的代码。
答案 0 :(得分:0)
在你的didBeginContact方法中你应该有这样的东西:
if (collision == (CategoryObjectA | CategoryPlayer)) {
// code...
}
if (collision == (CategoryObjectB | CategoryPlayer)) {
// code...
}
显然,您需要为对象A和对象B设置唯一的categoryBitMask,并将其contactTestBitMask设置为识别播放器对象。