现在做一个圆形的游戏操作虚拟键盘,上下左右四个方向,需要根据用户点击在那个区域,相应的产生对应的被按下的效果,我是利用surfaceView直接绘制的,然后标记的按键状态既可以实现。由于我对控件不太熟,是否能用重现groupView,实现对应的这种效果,不知道。
现在的问题就是:
1、采用我的办法,不知道点与扇形碰撞是怎么检测的?
2、如果采用重现groupView,如果能实现对应的效果的话,就不需要检查点与扇形的碰撞了,系统处理了?
忘各位高人指点?

解决方案 »

  1.   

    按照弧度检测,把方向定义成4个90度的扇形区域,然后触摸的点和圆的中心两点之间算角度,看这角度落在哪个区域内就是点击哪个方向。
      

  2.   

      不是太明白,能否详细说详细点   谢谢
      

  3.   

    纯数学的的了,你把一个圆切成4份,然后,横的定义为X轴,竖的定义为Y轴,坐标系内一个点算它的角度很容易呀,然后看这角度落在那个象限内不就行了。