Python 尝试在pygame中旋转图像以进行移动

Python 尝试在pygame中旋转图像以进行移动,python,pygame,rotation,Python,Pygame,Rotation,我是编程新手,所以我会在线学习一些教程来制作一个基本的游戏。为了为我的角色创建移动,我遵循了本教程 在完成了视频的旋转部分后,我试着进行了测试。但是,由于某些原因,它不起作用。我不知道这是为什么。我没有得到一个错误,但字符停留在一个地方,不旋转,一旦我按下左箭头键和右箭头键。有人能看看我的代码,告诉我我做错了什么吗?非常感谢 import pygame pygame.init() window = pygame.display.set_mode((650, 650)) pygame.displa

我是编程新手,所以我会在线学习一些教程来制作一个基本的游戏。为了为我的角色创建移动,我遵循了本教程 在完成了视频的旋转部分后,我试着进行了测试。但是,由于某些原因,它不起作用。我不知道这是为什么。我没有得到一个错误,但字符停留在一个地方,不旋转,一旦我按下左箭头键和右箭头键。有人能看看我的代码,告诉我我做错了什么吗?非常感谢

import pygame
pygame.init()
window = pygame.display.set_mode((650, 650))
pygame.display.set_caption  ("Game")
green = (0,255,0)
window.fill(green)

class Player(pygame.sprite.Sprite):
   def __init__(self):
      super().__init__()
      self.og_image = pygame.image.load("player1.png")
      self.image = self.og_image
      self.rect = self.image.get_rect (center = (345,345))
      self.angle = 0
      self.rotate_speed = 1        
      self.direction = 0     

   def rotate(self):
      if self.direction == 1:
         self.angle -= self.rotate_speed
         print(self.angle)
      elif self.direction == -1:
         self.angle += self.rotate_speed
         print(self.angle)
      self.image = pygame.transform.rotozoom(self.og_image, self.angle, 1)
      self.rect = self.image.get_rect(center = (self.rect.center))
   def update(self):     
      self.rotate()
      
player_1 = Player()
players = pygame.sprite.GroupSingle()
players.add(player_1)
players.draw(window)

run = True

while run == True:
   
   for event in pygame.event.get():          
      if event.type == pygame.QUIT:          
         run = False

      if event.type == pygame.KEYDOWN:
         if event.key == pygame.K_RIGHT:
            players.sprite.direction += 1
         if event.key == pygame.K_LEFT:
            players.sprite.direction -= 1
            
      if event.type == pygame.KEYUP:
         if event.key == pygame.K_RIGHT:
            players.sprite.direction -= 1
         if event.key == pygame.K_LEFT:
            players.sprite.direction += 1

      players.update()

      pygame.display.update()



pygame.quit()
在绘制对象之前,必须在组中绘制精灵(
players.draw(window)
),并且必须清除显示(
window.fill(green)
)。注意,您必须在应用程序循环而不是事件循环中执行此操作(这是一个问题):

run=True
当run==True时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_RIGHT:
players.sprite.direction+=1
如果event.key==pygame.K_左:
players.sprite.direction-=1
如果event.type==pygame.KEYUP:
如果event.key==pygame.K_RIGHT:
players.sprite.direction-=1
如果event.key==pygame.K_左:
players.sprite.direction+=1
#压痕
# 在绘制对象之前,必须在组中绘制精灵(
players.draw(window)
),并且必须清除显示(
window.fill(green)
)。注意,您必须在应用程序循环而不是事件循环中执行此操作(这是一个问题):

run=True
当run==True时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_RIGHT:
players.sprite.direction+=1
如果event.key==pygame.K_左:
players.sprite.direction-=1
如果event.type==pygame.KEYUP:
如果event.key==pygame.K_RIGHT:
players.sprite.direction-=1
如果event.key==pygame.K_左:
players.sprite.direction+=1
#压痕

#我真的很抱歉。过去几天我一直很忙。希望在接下来的几天里能回到这件事上。谢谢你的帮助,我真的很抱歉。过去几天我一直很忙。希望在接下来的几天里能回到这件事上。谢谢你的帮助。