有一些游戏有一些小图片作为精灵,可以通过触摸移动。如果精灵是一个较大的图片,触摸是非常正常的。我们可以使用函数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. 触摸时删除精灵
- 5. 旋转精灵触摸libgdx
- 6. Cocos2d中的触摸精灵
- 7. Cocos2d - 基于触摸改变精灵动画(精灵表)
- 8. 触摸后添加精灵cocos2d
- 9. 禁用精灵背后的触摸
- 10. 图像精灵和触摸设备
- 11. 触摸节点是精灵套件
- 12. 用触摸旋转一个精灵 - Cocos2d
- 13. 让精灵可以拖动当触摸
- 14. Cocos2d-js精灵阵列触摸事件
- 15. cocos2d的精灵禁用触摸
- 16. 触摸无边界的精灵盒子
- 17. 如何让精灵旋转触摸Cocos2d
- 18. 触摸精灵的可见部分
- 19. 的cocos2d的Android触摸精灵
- 20. 如何检测子精灵触摸
- 21. CCPanZoomController +可触摸/可点击的精灵
- 22. cocos2d根据触摸的位置精灵
- 23. cocos2d js - 触摸叠加在一起的小精灵
- 24. SpriteKit:在大精灵中创建可触摸区域 - 基于精灵内部触摸的位置来处理SKA
- 25. cocos2D和Box2D:如何获得精确触摸的精灵?
- 26. 如何检测是另一个精灵的孩子的精灵的触摸
- 27. 使用nodeAtPoint选择我用手指触摸的精灵不选择精灵
- 28. 将精灵移动到触摸点增加速度触摸得越长
- 29. 煎茶触摸不灵
- 30. ds触摸屏灵敏度
嗯,可能需要用户使用手写笔,而不是一个大胖乎乎的手指,而不是一个精美的尖端? – FrustratedWithFormsDesigner 2010-05-18 14:44:55