0

我小时候将精灵 B 添加到精灵 A 中。

[spriteA addChild:spriteB];

我的游戏逻辑基于 spriteB 是否被触摸。但是我无法让 spriteB 检测到触摸。

我已经将touchLocation转换为nodeSpace ..我可以让spriteA毫无问题地检测到触摸..

我使用的 if 条件是

if (CGRectContainsPoint(spriteB.boundingBox, touchLocation))

如果有人能指出我的方向会很甜蜜..

spriteA 被添加到 spriteBatchNode 如果这很重要。

提前致谢!

更新:

我认为孩子实际上正在检测触摸。它不起作用的原因是因为我设置了脏标签。

简而言之,这就是我的游戏的运作方式。目标从一些隐藏处弹出......玩家触摸目标以获得积分。

我有几个数组可以将目标保存在不同的位置。我为每个目标设置了脏标签..
target.dirty = TRUE 当它弹出时 target.dirty = FALSE 当它隐藏时

这相当于如果它弹出,那么它是可点击的。如果它在隐藏的后面,那么它是不可点击的。

所以就在我输入我的 if 条件之前

if (CGRectContainsPoint(curTarget.boundingBox, touchLocation))

我有这个

if(curTarget.dirty == FALSE) continue;

我的问题是,当我进行上述条件检查时..我没有检测到触摸..但是如果我取消上述条件,我可以检测到所有触摸..但问题会变成相反的..这是我能够做到的点击我的目标,即使它不可见..

如果我将目标精灵添加为图层的子图层,则上述逻辑有效......

帮助!

4

0 回答 0