我正在做一個小遊戲,並且在按下某個鍵時我無法旋轉其中一個形狀。我設法旋轉形狀,但是當按下按鍵時,它會繼續旋轉(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度並不奇怪。 –