2010-09-15 42 views
0

在Android上创建飞镖游戏的最佳方式是什么?是否有可能确定飞镖击中的位置以及它在哪个区域使用画布,还是我需要使用不同的方法?如何在Android上选择画布上的形状

编辑

对不起,我不认为我已经解释了我的问题非常好。

在html5的svg中我可以创建一个使用形状的飞镖板并为每个形状分配一个id。当飞镖落在一个形状上时,编码知道它落在哪个形状上,得到它的编号并计算得分。例如对于飞镖板上的所有20个区域,id =“20”id =“60”id =“40”。

我该如何在Android上做到这一点?

回答

1

根据您的更新新的答案:

你将不得不做手工命中检测。触摸事件将为您提供以视图左上角为原点的x-y坐标。计算积分如下:

  1. 抵消给定的坐标,以便它们与棋盘中心对齐(即触摸棋盘中央会给(100,150),将其翻译为(0,0 ))。
  2. 获取触摸的角度以找到棋盘的哪个编号部分被击中。类似于double touchAngle = Math.atan2(y,x)。可能需要在这里将弧度转换为度数。
  3. 地图的角度到基准点的值(如果角度> 9 & &角度< 27,基点= 7)
  4. 乘以2或3的基点值,如果从中心到触摸(distance = Math.sqrt(x^2 + y^2))的距离是一个特殊的长度来考虑乘数环。
2

你有正确的想法。一个简单的方法是在一个活动中显示一个自定义的DartBoardView。该视图将使用重写的onDraw来绘制飞镖板图像以及用户“掷出”的任何飞镖。该视图然后将使用View.onTouchEvent来处理用户触摸事件并将其转换为新的飞镖。

+0

谢谢你的回答,它的一半我需要的地方。请看看我的编辑 – skyfoot 2010-09-15 20:57:04

+0

试试用数学!距离公式和一个循环 – schwiz 2010-09-15 20:59:43