2010-09-15 3 views
0

Каков наилучший способ создания игры на дартс на Android. Можно ли определить, где попал дротик, и в какой области он использует холст, или мне нужно использовать метод diffenrent?Как выбрать форму на холсте в Android

Редактировать

К сожалению, я не думаю, что я объяснил свою проблему очень хорошо.

В svg в html5 я могу создать доску с использованием фигур и назначить идентификатор каждой фигуре. Когда дротик приземляется на фигуру, код знает, к какой форме он приземлился, получает свой идентификатор и вычисляет счет. например id = "20" id = "60" id = "40" для всех 20 областей на дротике.

Как бы это сделать на Android?

ответ

1

Новый ответ, основанный на вашем обновлении:

Вы будете иметь, чтобы сделать обнаружение попадания вручную. Событие касания даст вам координату x-y, расположенную в верхнем левом углу представления в качестве источника. Расчет баллов будет идти следующим образом:

  1. Смещение данные COORDS поэтому они выстраиваются в линию с центром вашей платы (т.е. прикасаясь к середине вашей платы будет давать (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

+0

попробуйте использовать математику! формула расстояния и петля – schwiz