Вращение изображения в Pygame с ключом

Я пытаюсь повернуть изображение с помощью клавиш со стрелками вправо и влево, но мой код не работает. Может кто-нибудь помочь, что я делаю не так?

        for ev in pygame.event.get():
            degree=5
            while pygame.key.get_pressed()[pygame.K_LEFT] == True:
                screen.blit(pygame.transform.rotate(image, degree), (100,100))
                degree+=5
                sleep(0.01)
                pygame.display.update()

Я уже импортировал все модули, такие как Pygame и время, а также сделал pygame.init(), также мой экран настроен, я только хочу знать, как я могу непрерывно вращать свое изображение с помощью клавиш со стрелками? Может кто-нибудь помочь?

Мой код

Вот мой код с обновлением, предложенным furas в нем. Кнопка мыши работает, если я нажимаю K_LEFT, изображение поворачивается только один раз, если я нажимаю K_LEFT больше, оно кажется вращающимся, но я не вижу результата (я говорю, что это кажется, потому что, если я нажимаю на изображение с помощью мыши и нажимаю чтобы нарисовать линии на изображении, а затем снова нажать K_LEFT, все линии станут черными, что означает, что pygame пытается нарисовать пиксели изображения в позициях пикселей линии?)

import pygame
import sys
from time import sleep
import random
from pygame.locals import *

# init video system:
pygame.init()

# Definitionen
pygame.mixer.music.load(
    "/home/amir/Music/free-sound/67884__benboncan__lake-waves-2.wav")
bildSchirm = pygame.display.set_mode((800, 800))
bild = pygame.image.load(
    "/home/amir/Documents/python/pygame/plane.png").convert()
pygame.display.set_caption("Shooting")
bild_pos = (400 - 74, 400 - 58)
bildSchirm.blit(bild, bild_pos)
pygame.display.update()
pygame.mixer.music.play(0, 0)


def bewegen(a, b=0):  # der Weg und die Richtung der Kugel
    lst = [pygame.mouse.get_pos()]
    richtungen = [(0, 10), (-10, 0), (10, 0), (0, -10)]
    rnd_richtung = random.choice(richtungen)
    while b < a - 1:
        b += 1
        lst.append((lst[-1][0] + rnd_richtung[0],
                    lst[-1][1] + rnd_richtung[1]))
    return lst


# main_loop
running = True
while running:
    for e in pygame.event.get():
        if e.type == KEYDOWN and e.key == K_q:
            running = False
        elif e.type == MOUSEBUTTONDOWN:
            for x in bewegen(random.randint(1, 50)):
                pygame.draw.rect(bildSchirm, (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)), Rect(x, (10, 10)), 0)
                sleep(0.002)  # die Geschwindigkeit der Schiesserei
                pygame.display.update()
        elif pygame.key.get_pressed()[pygame.K_LEFT] == True:
            bildSchirm.blit(pygame.transform.rotate(bild, 50), bild_pos)
    pygame.display.update()
pygame.quit()

0 ответов

Другие вопросы по тегам