Вращение изображения в 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()