2 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
pygame返回的狀態(tài).key.get_pressed()
只要按住鍵即可。僅在按下鍵時(shí)發(fā)生一次。
使用事件來(lái)舉起鳥(niǎo)。但是鳥(niǎo)的位置必須在主循環(huán)中計(jì)算,以保持鳥(niǎo)不斷下降。
此外,使用pygame.time.Clock
分別.tick()
來(lái)控制每秒的翻牌次數(shù):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貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個(gè)贊
請(qǐng)嘗試使用事件而不是 。 返回一個(gè)數(shù)組,其中包含鍵盤(pán)上每個(gè)鍵的狀態(tài),并且每次循環(huán)運(yùn)行時(shí)都會(huì)調(diào)用它 - 因此,如果您按住該鍵,它將反復(fù)觸發(fā)。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
沿著這些路線的東西應(yīng)該對(duì)你有用。
添加回答
舉報(bào)