Python pygame.transform.rotate - PullRequest
       5

Python pygame.transform.rotate

2 голосов
/ 16 ноября 2011

Я новичок в Pygame и Python. Но сейчас я должен сделать вертушку. Это должно остановиться в случайное время. Я думал о том, что могу иметь random.randint (0, 360). Так что я могу остановить это в случайное время. Но сейчас я могу повернуть его только на 90 градусов, иначе он движется по экрану.

Любая помощь будет полезна.

Спасибо

import sys, pygame, time

pygame.init()

screen = pygame.display.set_mode([600,600])
black = 255,255,0
ball = pygame.image.load("wheel.gif")
temp = pygame.image.load("wheel.gif")


ballrec = ball.get_rect().center

while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    screen.fill(black)
    ball = pygame.transform.rotate(ball, 45)
    ballrec = ball.get_rect().center
    screen.blit(ball, ballrec)
    pygame.display.flip()
    time.sleep(1)

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

Я заметил, что если вы продолжаете вращать повернутый объект несколько раз, как вы делаете в ball = pygame.transform.rotate(ball, 45), спрайт искажается и начинает уходить с экрана.Я обычно сохраняю исходное изображение и возвращаюсь к нему при повороте на 360 градусов.

0 голосов
/ 16 ноября 2011

Как отмечено здесь , поворот на углы, которые не делятся на 90, требует дополнения изображения.Вы должны иметь возможность просто перетаскивать изображение, чтобы оно всегда находилось по центру 128 128, или вы можете обрезать края изображения по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...