0

例如,如果我们有 10 个矩形精灵,我们使用随机的宽度、高度、位置和 z-index 生成它们。现在的方法

-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

叫做。我们如何知道点击了哪个精灵?我知道一些技术检查点击点是否在精灵矩形的范围内,但在上述情况下,如果矩形 A 在左上角的矩形 B 的顶部,以及当矩形 B 的左上角时怎么办?被点击,它可能是被点击的矩形A——点击点实际上在两个矩形内。

我们是否必须手动完成,甚至考虑 z-index ......?(可能循环遍历从最高 z-index 到最低的所有精灵)。

如果精灵是一个三角形并且旋转呢?Cocos2d 中没有内置的方法来处理这个问题吗?

(那是因为我前几天浏览了Core Graphics的示例代码……好像那样的话,会有两个点击事件,一个是主视图,一个是子视图,我们可以查看是什么视图是用户点击了,没有做任何计算)

4

1 回答 1

1

一个可能的解决方案是 CCSprite 的子类,它声明自己是 CCStandardTouchDelegate 或 CCTargetedTouchDelegate 的委托。然后在这些委托方法中对精灵执行适当的操作。

于 2012-05-01T16:07:44.390 回答