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
沿着这些路线的东西应该对你有用。
添加回答
举报
