gpt4 book ai didi

python - 有没有办法将 pygame.display.update 添加到缩进循环

转载 作者:太空宇宙 更新时间:2023-11-03 23:55:16 25 4
gpt4 key购买 nike

我正在 pygame 上开发一个简单的游戏,我正在使用这段代码实现跳转,但更新功能在 for 循环内不起作用,有没有办法解决这个问题:

while Running:
if keys[pygame.K_UP]:
if Y > 0:
if Jump == False:
for i in range(1,100):
pygame.time.delay(10)
pygame.display.update()
Y -= 10
Jump = True


if not keys[pygame.K_UP]:
if Y < 500-Height:
Y+= Vel
win.fill((0,0,0))
pygame.draw.rect(win, (255, 0, 0), (X, Y, Width, Height))
pygame.display.update()

跳跃确实有效,但动画并没有它只是切换到 i = 100 而不是平滑过渡

最佳答案

不要使用嵌套循环来实现游戏过程。你有一个游戏循环,使用它。您只需要主游戏循环和事件循环。当 UP 被按下时,然后设置状态 Jump。跳跃结束后重置状态。根据每一帧中的状态 Jump 计算玩家的位置。例如:

jump_i = 0
while Running:

for event in pygame.event.get():
if event.type == pygame.QUIT:
Running = False
keys = pygame.key.get_pressed()

if keys[pygame.K_UP]:
if Y > 0 and Jump == False:
Jump = True
jump_i = 0

if Jump and jump_i < 100:
jump_i += 1
Y -= 10
else:
Jump = False

if Y < 500-Height:
Y += Vel

win.fill((0,0,0))
pygame.draw.rect(win, (255, 0, 0), (X, Y, Width, Height))
pygame.display.update()

关于python - 有没有办法将 pygame.display.update 添加到缩进循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57964188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com