鱼C论坛

 找回密码
 立即注册
查看: 1078|回复: 6

关于pygame的卡顿

[复制链接]
发表于 2021-8-2 11:53:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在关卡切换的时候用到了pygame.time.delay(),其中如果是比较短的时间,比如写2000就没问题。如果是5000比较长的时间,在最后两秒如果点击鼠标,pygame会变成未响应的白色状态,但5s结束后依然会顺利进入下一个关卡,只是这样体验不太好,如何解决呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-10 16:31:15 | 显示全部楼层
加个逻辑变量是不是要切换关卡
循环里切换分支
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-10 16:42:04 | 显示全部楼层
本帖最后由 菜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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-10 16:44:23 | 显示全部楼层
塔利班 发表于 2021-8-10 16:31
加个逻辑变量是不是要切换关卡
循环里切换分支

哎,我发的源代码呢????
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-10 16:48:28 | 显示全部楼层
塔利班 发表于 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()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-10 18:35:13 | 显示全部楼层
菜de嚣张 发表于 2021-8-10 16:48
#判断此时执行关卡切换
        if aim==level[-1]:
            if level_index!=(len(level)-1):

你发的我没看,自己试试吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 15:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表