关于pygame的卡顿
我在关卡切换的时候用到了pygame.time.delay(),其中如果是比较短的时间,比如写2000就没问题。如果是5000比较长的时间,在最后两秒如果点击鼠标,pygame会变成未响应的白色状态,但5s结束后依然会顺利进入下一个关卡,只是这样体验不太好,如何解决呢? 加个逻辑变量是不是要切换关卡循环里切换分支 本帖最后由 菜de嚣张 于 2021-8-10 16:43 编辑
塔利班 发表于 2021-8-10 16:31
加个逻辑变量是不是要切换关卡
循环里切换分支
那一段代码如下:
if aim==level[-1]:#判断条件符合进入下一关
if level_index!=(len(level)-1):#未到最后一关
pygame.display.flip()#画面切换到两关卡间的画面
pygame.time.delay(1000)#保存一秒玩家达成的条件时的画面
#进入关卡中间画面
level_index+=1#游戏关卡加一
cheer_sound.play()#播放欢呼声音
#清除场上的对象
mofangs.clear()
annius.clear()
opengame=True#与关卡初始化有关的变量
#更新为新画面
screen.blit(bg_image,(0,0))
screen.blit(cheer_image,cheer_rect)
pygame.display.flip()
#保存2秒中间画面
pygame.time.delay(2000)
#欢呼声结束,执行下一主循环
cheer_sound.stop() 塔利班 发表于 2021-8-10 16:31
加个逻辑变量是不是要切换关卡
循环里切换分支
哎,我发的源代码呢????{:5_94:} 塔利班 发表于 2021-8-10 16:31
加个逻辑变量是不是要切换关卡
循环里切换分支
#判断此时执行关卡切换
if aim==level[-1]:
if level_index!=(len(level)-1):
#刷新为玩家达成目标时的画面,并保存1s
pygame.display.flip()
pygame.time.delay(1000)
#进行下一个关卡初始化的必要操作
level_index+=1
mofangs.clear()
annius.clear()
opengame=True
#播放欢呼声,并刷新为关卡切换的中间画面
cheer_sound.play()
screen.blit(bg_image,(0,0))
screen.blit(cheer_image,cheer_rect)
pygame.display.flip()
#2s后音乐停止
pygame.time.delay(2000)
cheer_sound.stop() 菜de嚣张 发表于 2021-8-10 16:48
#判断此时执行关卡切换
if aim==level[-1]:
if level_index!=(len(level)-1):
你发的我没看,自己试试吧
页:
[1]