2013-06-07 2 views
0

Я портирую игру, которую я сделал, из Windows (Visual Studio C# XNA4) на Android.Android: найдите угол и нарисуйте растровое изображение под этим углом?

В игре мне нужно найти местоположение пользователей «touch» (что я сделал), а затем «указать» игрока на это место касания (нарисуйте растровое изображение игрока под этим углом).

В C# и XNA4, я использовал следующее:

Matrix rotationMatrix = Matrix.CreateRotationZ(playerAngle); 
PlayerDirection = Vector2.Transform(up, rotationMatrix); 

Если позиция игроков был

x = 200; 
y = 200; 

И сенсорные координаты были

x = 300; 
y = 300; 

Как бы я заставить игрока «указывать» на то место, где коснулся пользователь?

+1

агс ((y2 - y1)/(x2 - x1))? – Blackbelt

ответ

2

В Java (я предполагаю, что вы используете Java для Android) вы могли бы сделать следующее, чтобы найти угол:

private double getAngle(double x1, double y1, double x2, double y2) 
{ 
    return Math.atan2(y2-y1, x2-x1); 
} 
+0

Хорошо, я куда-то попадаю, но углы, полученные в результате вычислений, - это мили. Например, если я касаюсь непосредственно над игроком, я получаю чтение -163.1467? Я ожидаю, что это будет «0»? – Ryan86

+0

Чрезвычайно сложно НАПРАВЛЯТЬ точно над игроком, ваш палец слишком велик, чтобы иметь такую ​​точность! +1 за ответ! – thiagolr

+0

Моя ошибка, я неправильно передавал переменные функции. Работает так, как ожидалось. [Ссылка] http://gamedev.stackexchange.com/questions/14602/what-are-atan-and-atan2-used-for-in-games – Ryan86

Смежные вопросы