2016-12-30 15 views
1

Я делаю утилиту для себя, чтобы легко переводить степени в x и y в мои игры, и я застрял в проблеме; пытаясь переместить игрока в градусах по экрану. Я нашел несколько формул, которые не работали, и мне нужна помощь. Вот мой код, который я нашел:Перемещение в градусах pygame

def move(degrees, offset): 
    x = math.cos(degrees * 57.2957795) * offset #57.2957795 Was supposed to be the 
    y = math.sin(degrees * 57.2957795) * offset #magic number but it wont work. 
    return [x, y] 

Я побежал это:

move(0, 300) 

Выход: [300,0, 0,0] и он работал нормально. , но когда я сделал это:

move(90, 300) 

это outputed это: [-89.8549554331319, -286,22733444608303]

Пожалуйста, помогите мне!

ответ

1

Ваш подход почти правильный. Вы должны использовать радианы для функций sin/cos. Вот метод, который я обычно использую в C++ (портирован на python) для 2D-движения.

import math 
def move(degrees, offset) 
    rads = math.radians(degrees) 
    x = math.cos(rads) * offset; 
    y = math.sin(rads) * offset; 
    return x, y 
+0

Спасибо, это помогло много. Мне было интересно, знаете ли вы, как конвертировать X и Y в градусы, например, точку от одной веревки до другой? Спасибо, это было бы полезно! – XCode

+0

Рад, что это помогло! Я не следую? Вы хотите преобразовать декартовы координаты 'x' и' y' в градусы? Вы хотите преобразовать в полярные координаты? Или вы хотите конвертировать в какую-то долготу/широту? – ospahiu

1

Число верно, но операция неправильная. Чтобы преобразовать градусы в радианы, вам нужно разделить на 180 градусов на полукруг, а затем умножить на pi радиан на полукругу. Это эквивалентно , делящему постоянной.

+0

Привет, спасибо за помощь. Мне просто интересно, можете ли вы добавить код, чтобы показать мне, как это сделать? – XCode

+0

Оператор разделения - «/». –

+0

Это не значит, что я имел в виду, что я имел в виду функцию, которая это делает. – XCode

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

  • Нет связанных вопросов^_^