如何让cocos2d检测非标准矩形形状的触摸?

时间:2012-08-20 03:41:56

标签: cocos2d-iphone

我花了很多时间在谷歌上搜索,找到了很多不同的答案 - 这些问题大部分都是陈旧的...我试过一对 - 特别是这一个(带有containsPoint /的第一个答案) containsTouch类别方法): how to detect touch on rotated sprite in cocos2d

当我实现它时,当我远离它们时它错误地检测到精灵上的触摸 - 最重要的是我收到了很多警告,例如“openGLView已被弃用”。

接下来,我发现了这篇文章: http://www.cocos2d-iphone.org/forum/topic/1420

并检查了touchesTest项目...在我的标题中添加了“CCTargetedTouchDelegate”协议,然后添加了相关的实现方法(onEnter,onExit,containsTouchLocation和ccTouchBegan)......并发现这只是不起作用因为我使用的精灵不是矩形...

我的按钮看起来有点类似于: http://iphone.appstorm.net/wp-content/uploads/2010/04/ipconvert-1.jpg

旋转的矩形,随着它们下降而变得更窄......

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我使用过CGPathRef并且也工作过。 Here is one other thread类似于你的问题。请参考该解决方案。

答案 1 :(得分:0)

您可以实现简单的algorythm来检测点是否在多边形内。在这种情况下,点将是您的触摸位置,多边形将是您的按钮电路。

或者你可以做一些更复杂的事情。您可以创建自己的菜单和自己的按钮。它允许您创建像containsPoint:这样的方法来检查给定位置的像素是否具有零alpha值。