Pygame, вращение изображения по оси
Я пытаюсь повернуть загруженное изображение, но мне нужно повернуть его на определенную ось.
Я делал это:
arm = pygame.image.load('w1.png').convert()
arms = [pygame.transform.rotate(arm, deg) for deg in range(0, 360, 4)]
Затем я перебирал признаки оружия с:
count+=1
arms[count]
Вращение работает, но оно не вращается на оси должным образом. Я написал алгоритмы, которые вращают линии, созданные с помощью pygame.draw.line, но я не знаю, как этого добиться с помощью изображения.
Любое понимание приветствуется,
Спасибо
1 ответ
Повернув изображение и перед блиттингом, получите новый прямоугольник для изображения и измените позиционные атрибуты прямоугольника обратно в исходное положение.
IE: сохранить центр прямоугольника, повернуть изображение, получить новый прямоугольник, установить новый центр, блиц.
При использовании атрибута center только поверните его вокруг центра изображения, но, возможно, при использовании одного из углов вы попадете на правильный путь.
def RESET_ROTATED_RECT(old_rect,rotated_image):
old_pos=old_rect.center
newrect=rotated_image.get_rect()
newrect.center=old_pos
return newrect
Я часто использую центр, но не использовал другие позиции. С этим может быть стоит повозиться.