我有几个游戏世界对象,玩家需要在他们的physicsBody.categoryBitMask上联系他们。而不是为每个单独的对象使用单独的categoryBitMasks(对象计数超过categoryBitMask的限制,即32)我只使用1个categoryBitMask并为所有对象提供单独的名称。以下是代码的外观:
new
问题是,在didBeginContact方法中,当玩家联系任何对象时,所有代码都会被执行。即使是玩家尚未联系的对象的代码。这意味着IF语句(例如if([_backgroundLayer childNodeWithName:@“slope”])不完整。有人能告诉我如何正确地写出单个对象联系的IF语句吗?在didBeginContact中的以下IF语句也不起作用:
TypeError: undefined is not a function
答案 0 :(得分:1)
你的if
语句都只是检查孩子是否存在,看起来他们都这样做了。我想你想检查的是碰撞节点是否有你想要的名字,所以改变:
if ([_backgroundLayer childNodeWithName:@"bounds"])
为:
if ([firstBody.node.name isEqualToString:@"bounds"])