-1
我目前的項目是在python中製作太空入侵者。我正在使用pygame庫來幫助我這樣做。到目前爲止,除了玩家射擊之外,一切正常。當玩家按下左側控制時,玩家應該發射一顆子彈,相反,玩家將繼續射擊,直到被告知要做其他動作。如果有人可以幫助我解決這個問題,我們將非常感謝,代碼如下,謝謝。直到你釋放K_LCTRL
-在pygame中發射
def update(self):
self.speed_x = 0
keystate = pygame.key.get_pressed()
if keystate[pygame.K_LEFT]:
self.speed_x = -10
if keystate[pygame.K_RIGHT]:
self.speed_x = 10
self.rect.x += self.speed_x
if self.rect.right > DISPLAY_WIDTH:
self.rect.right = DISPLAY_WIDTH
if self.rect.left < 0:
self.rect.left = 0
if keystate[pygame.K_LCTRL]:
player.shoot()
你應該張貼shoot'的'定義執行它。 –
這是因爲你使用'pygame.key.get_pressed()',它總是給出'True',直到你釋放'K_LCTRL'。如果你發射了第一個子彈,你可以使用'fired = True/False'來控制。或者使用'event.type == pygame.KEYDOWN'而不是'pygame.key.get_pressed()',因爲'event'只創建一次 - 當按鈕狀態從未按下被按下時。 – furas