鱼C论坛

 找回密码
 立即注册
查看: 2028|回复: 1

求助一个关于pygame的问题

[复制链接]
发表于 2019-9-25 13:14:30 | 显示全部楼层 |阅读模式

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

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

x
想要实现”按住Ctrl的状态下再按连续按C键,可以连续放大窗口”的功能,这部分代码如下:
但是执行起来,当我按住Ctrl不放,连续按C时,只能放大一次,需要松开Ctrl再按下,才能进行下一次放大
若按住Ctrl不放,连续按C,文件中打印内容:”按下Ctrl!变大!松开Ctrl!”
可见自动帮我松开Ctrl,求教这是什么原理呢?

isCtrl=0#记录是否按下Ctrl键
f=open('C:/Users/10115/Desktop/f.txt','w')#在文件里记录执行情况

while True:
    for event in pygame.event.get():
        if event.type==pygame.QUIT:
            f.close()
            sys.exit()

        if event.type==pygame.KEYUP:
            if event.key==pygame.K_LCTRL:
                f.write('松开Ctrl!')
                isCtrl=0
        if event.type==pygame.KEYDOWN:
            if event.key==pygame.K_LCTRL:
                f.write('按下Ctrl!')
                isCtrl=1
            if event.key==pygame.K_c:
                if isCtrl==1 and size_level>0:
                    f.write('变大!')
                    #下面三句用来放大,没问题
                    size_level-=1
                    size=all_sizes[size_level]
                    pygame.display.set_mode(size)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-9-25 14:30:53 From FishC Mobile | 显示全部楼层
试了很久,现在基本确定原因是,执行pygame.display.set_mode 函数后,窗口被重置的同时event队列也被重置,导致找不到 先前按下ctrl的操作。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-25 03:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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