我在小时候给精灵A添加了精灵B ..
[spriteA addChild:spriteB];
我的游戏逻辑基于是否触摸了spriteB。 但是我无法让spriteB检测到触摸。
我已将touchLocation转换为nodeSpace .. 而且我可以通过spriteA来检测触摸没有问题。
我使用的if条件是
if (CGRectContainsPoint(spriteB.boundingBox, touchLocation))
如果有人能指出我的方向,那就太好了。
如果重要的话,spriteA会被添加到spriteBatchNode中。
提前致谢!
更新
我认为孩子实际上正在检测触摸。 它不工作的原因是因为我设置了脏标签。
总之,这就是我的游戏如何运作。 目标从一些皮革中突然出现..玩家触及目标以获得积分。
我有一些数组可以在不同的位置保存目标。
我为每个目标设置了脏标签。
target.dirty =弹出时为TRUE
target.dirty =隐藏
这相当于 如果它弹出,那么它是可点击的。 如果它隐藏在隐藏之后,则它不可点击。
就在我进入if条件之前
if (CGRectContainsPoint(curTarget.boundingBox, touchLocation))
我有这个
if(curTarget.dirty == FALSE) continue;
我的问题是,当我有上述条件检查..我检测到没有触摸.. 但如果我采取上述条件,我可以检测所有接触.. 但问题会变成相反的......即使它不可见,我也可以点击我的目标..
如果我将目标精灵添加为图层的子项,则上述逻辑有效...
帮助!