小精灵触摸

时间:2010-05-18 14:41:55

标签: iphone cocos2d-iphone multi-touch

有些游戏有一些小图片作为精灵,可以通过触摸移动。如果精灵是一个更大的图片,触摸很正常。我们可以使用函数CGRectContainsPoint检查精灵。但是当精灵很小的时候,这个功能看起来不太好。有其他方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

我写了一篇关于你可以用来缓解@FrustratedWithFormsDesigner描述的“胖手指”问题的方法:
http://codecube.net/2010/03/approximating-touch-points/

  

...如果你比较用户的话怎么办?   触摸实体的点   位置,只需选择   最近的一个(不管是否   它距离35或36像素?)

该帖子是用C#编写的Windows手机,但这个概念应该适用。基本上,在用户的触摸和屏幕上的实体之间进行距离比较。使触摸按距离操纵最近的一个,你可以远离严格定义的方块来检测触摸。

答案 1 :(得分:0)

您可以在精灵周围的边距内进行触摸。例如如果触摸在精灵的10个像素范围内,则将其视为触摸精灵。

这样做的一种方法是在调用CGRectContainsPoint之前扩展精灵的矩形。对于x和y,以下代码将矩形扩展10:

CGRect expanded = CGRectInset(spriteRect, -10.0, -10.0);

另一种方法是在触摸周围创建一个矩形并使用CGRectIntersectsRect检查触摸矩形是否与精灵重叠。