python - 有没有办法将 pygame.display.update 添加到缩进循环
问题描述
我正在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()
推荐阅读
- reactjs - 在异步中反应笑话测试 Promise
- json - 如何编组忽略结构选项?
- google-chrome - 在 chrome 上禁用本地主机上的任何证书检查
- javascript - 为什么我不能使用 window.fetch 将对象数组作为 URL 参数从 JavaScript 传递到 PHP?
- r - 需要用R中的特定数字划分变量
- getstream-io - 如何为 Stream react-native 应用程序创建/编辑用户配置文件?
- javascript - 查找 Google Analytics onclick 事件跟踪代码脚本
- java - 移入 AppBarLayout (Android) 时,文本在 Recyclerview 中消失
- wordpress - Wordpress 自定义处理
- javascript - 如何在 UTC 中获取时间戳但没有时间?