访问所有具有相同categoryBitMask的单个对象

时间:2015-06-25 15:28:14

标签: ios sprite-kit skphysicsbody bitmask

我有几个游戏世界对象,玩家需要在他们的physicsBody.categoryBitMask上联系他们。而不是为每个单独的对象使用单独的categoryBitMasks(对象计数超过categoryBitMask的限制,即32)我只使用1个categoryBitMask并为所有对象提供单独的名称。以下是代码的外观:

new

问题是,在didBeginContact方法中,当玩家联系任何对象时,所有代码都会被执行。即使是玩家尚未联系的对象的代码。这意味着IF语句(例如if([_backgroundLayer childNodeWithName:@“slope”])不完整。有人能告诉我如何正确地写出单个对象联系的IF语句吗?在didBeginContact中的以下IF语句也不起作用:

TypeError: undefined is not a function

1 个答案:

答案 0 :(得分:1)

你的if语句都只是检查孩子是否存在,看起来他们都这样做了。我想你想检查的是碰撞节点是否有你想要的名字,所以改变:

if ([_backgroundLayer childNodeWithName:@"bounds"])

为:

if ([firstBody.node.name isEqualToString:@"bounds"])