有一些游戏有一些小图片作为精灵,可以通过触摸移动。如果精灵是一个较大的图片,触摸是非常正常的。我们可以使用函数CGRectContainsPoint
检查精灵。但当精灵很小时,这个函数看起来不太好。还有其他方法可以解决这个问题吗?小精灵触摸
Q
小精灵触摸
2
A
回答
1
我写了一个办法,你可以使用,以减轻其@FrustratedWithFormsDesigner描述的“胖手指”的问题:
http://codecube.net/2010/03/approximating-touch-points/
...如果你比较一下用户的 触摸点对实体 的头寸和简单地选择 最接近的一个(无论是否 它是35或36像素)?
这篇文章是用C#编写的windows phone,但这个概念应该适用。基本上,在用户的触摸和屏幕上的实体之间进行距离比较。使触摸按距离操纵最近的那个,并且避免使用刚性定义的正方形来检测触摸。
+0
这是一个很好的方法,不仅因为它可以让你触摸小精灵,而且它可以在一个小区域内对几个小精灵进行消歧(即选择最接近的小精灵)。你仍然可能想要限制你看起来的距离;选择一个距离250像素的精灵会让你的应用感到奇怪。 – 2010-07-13 18:50:22
0
您可以允许在精灵周围的空白处进行触控。例如如果触摸位于精灵的10个像素内,请将其视为正在触摸精灵。
这样做的一种方法是在调用CGRectContainsPoint
之前展开精灵的矩形。下面的代码将通过10 x和y扩大矩形:
CGRect expanded = CGRectInset(spriteRect, -10.0, -10.0);
这样做是创建一个围绕触摸一个矩形,并使用CGRectIntersectsRect
检查触摸RECT与精灵重叠的另一种方式。
相关问题
- 1. 检测触摸小精灵并convertToNodeSpaceAR
- 2. 触摸后动画精灵?
- 3. 图像精灵和触摸设备
- 4. 用触摸旋转一个精灵 - Cocos2d
- 5. Cocos2d-js精灵阵列触摸事件
- 6. 如何让精灵旋转触摸Cocos2d
- 7. cocos2d的精灵禁用触摸
- 8. cocos2D和Box2D:如何获得精确触摸的精灵?
- 9. ds触摸屏灵敏度
- 10. 煎茶触摸不灵
- 11. Cocos2d输入图层仅接收精灵顶部的触摸
- 12. 在触摸按钮时更改玩家的精灵Unity 2D
- 13. 单点触摸同时使用两个精灵对象?
- 14. 根据用户触摸位置旋转精灵图像?
- 15. 如何识别非常规精灵图像的触摸?
- 16. 在cocos2d中检测到精灵的触摸
- 17. 如何检测上旋转精灵触摸在cocos2d
- 18. Cocos2d:检测旋转精灵上的触摸?
- 19. 获取在Cocos2D中的精灵上的触摸点的alpha值
- 20. 我想移动精灵体时触摸点检测
- 21. 如何在spriteKit上触摸图像/精灵?
- 22. 如何检测一个孩子精灵的触摸
- 23. 如何将精灵放置在触摸位置
- 24. 当我触摸屏幕我的精灵必须改变
- 25. Cocos2d iPhone非矩形精灵触摸检测
- 26. 如何让某些精灵在触摸后消失 - Cocos2d
- 27. 触摸在cocos2d精灵crashs我的应用程序
- 28. 高分辨率模式下的Cocos2d精灵触摸事件
- 29. 如何使用cocos2d在触摸时移动精灵?
- 30. 如何更改重叠精灵的触摸优先级
嗯,可能需要用户使用手写笔,而不是一个大胖乎乎的手指,而不是一个精美的尖端? – FrustratedWithFormsDesigner 2010-05-18 14:44:55