Для расчета направления движения использую простые формулы:
import math
obj_angle = 0.
obj_speed = 5
obj_rot_speed = 1.
def up():
direction = (obj_angle * math.pi)/180
obj_x += math.cos(direction) * obj_speed
obj_y += math.sin(direction) * obj_speed
def down():
direction = (obj_angle * math.pi)/180
obj_x -= math.cos(direction) * obj_speed
obj_y -= math.sin(direction) * obj_speed
def right():
obj_angle += obj_rot_speed
def left():
obj_angle -= obj_rot_speed
В теории все хорошо, но на практике получаем непонятное подергивание, как будто объект прыгает с пикселя на пиксель. Как этого можно избежать?