我正在做一个小游戏,并且在按下某个键时我无法旋转其中一个形状。我设法旋转形状,但是当按下按键时,它会继续旋转(90度),而不是停留在新的位置。我有一种感觉,它是在某种类型的循环,但我似乎无法摆脱循环。希望有人能帮忙。相关的代码位于从底部第六行了(ELIF键[K_D])Pygame形状旋转
class Player(pygame.sprite.Sprite):
def __init__(self, screen):
self.screen = screen
self.image = pygame.image.load(os.path.join('shape.png'))
self.rect = self.image.get_rect()
self.rect.x = 10
self.rect.y = 540
#You don't need to define self.width because it is now self.rect.width
#Same with self.height
self.speed = 10
def update(self):
keys = pygame.key.get_pressed()
if keys[K_LEFT]:
self.rect.left -= self.speed
if self.rect.left < 0: #The left edge
self.rect.left = 0
elif keys[K_RIGHT]:
self.rect.right += self.speed
if self.rect.right > WINDOW_WIDTH:
self.rect.right = WINDOW_WIDTH
elif keys[K_UP]:
self.rect.top -= self.speed
if self.rect.top < 0:
self.rect.top = 0
elif keys[K_DOWN]:
self.rect.bottom += self.speed
if self.rect.bottom > WINDOW_HEIGHT:
self.rect.bottom = WINDOW_HEIGHT
***#THE CODE BELOW IS THE SHAPES ROTATION***.
elif keys[K_d]:
self.image = pygame.transform.rotate(self.image, 90)
def draw(self, screen=None):
if screen is None:
screen = self.screen
screen.blit(self.image, (self.rect.x, self.rect.y))
为什么不添加打印在那里,看看它是否仍然认为D被按下......你可能不得不按下另一个键或清除键缓冲区或... –
90没有指定多远旋转? – user3286261
第二个参数是一个指定的角度,所以移动90度并不奇怪。 –