2 回答

TA貢獻1836條經驗 獲得超13個贊
pygame返回的狀態.key.get_pressed()
只要按住鍵即可。僅在按下鍵時發生一次。
使用事件來舉起鳥。但是鳥的位置必須在主循環中計算,以保持鳥不斷下降。
此外,使用pygame.time.Clock
分別.tick()
來控制每秒的翻牌次數:KEYDOWN
import pygame
pygame.init()
screen = pygame.display.set_mode((500,500))
clock = pygame.time.Clock()
c = pygame.image.load('cookie.png')
run = True
x,y = 50,50
while run:
clock.tick(60)
fly = False
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
elif event.type == pygame.KEYDOWN:
fly = event.key == pygame.K_SPACE
if fly:
y -= 20
else:
y += 1
screen.fill((255,255,255))
screen.blit(c, (x,y))
pygame.display.update()
pygame.quit()

TA貢獻1834條經驗 獲得超8個贊
請嘗試使用事件而不是 。 返回一個數組,其中包含鍵盤上每個鍵的狀態,并且每次循環運行時都會調用它 - 因此,如果您按住該鍵,它將反復觸發。KEYDOWNget_pressed()get_pressed()
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
elif event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
y -= 1
else:
y += 0.2
沿著這些路線的東西應該對你有用。
添加回答
舉報