鱼C论坛

 找回密码
 立即注册
查看: 2597|回复: 4

pygame窗口无法关闭了。。。

[复制链接]
发表于 2020-5-20 08:52:30 | 显示全部楼层 |阅读模式
5鱼币
如下图所示:
捕获.PNG
点击右上角的关闭,窗口无响应。

问题:
1、该问么解决?
2、代码如下,问题出在哪里?
myscreen = pygame.display.set_mode((400,300))
pygame.display.set_caption("利用键盘控制动画鸟")
myimg = pygame.image.load("bird2.png")
mypos = myimg.get_rect()

speed = [2,1]
i = 1
change = 1
mytf = False
direct = "R"

while True:
        if direct == "R":
                myimg2 = myimg
        else:
                myimg2 = pygame.transform.flip(myimg,True,False)
        i = i+1
        if i%20 == 0:
                mytf = True
        else:
                mytf = False
        if mytf:
                if change == 1:
                        myimg = pygame.image.load("bird1.png")
                        change = 2
                else:
                        myimg = pygame.image.load("bird2.png")
                        change = 1
        for event in pygame.event.get():
                if event == pygame.QUIT:
                        exit()
                if event.type == pygame.KEYDOWN:
                        if event.key == pygame.K_LEFT:
                                speed = [-2,0]
                                direct = "L"
                        if event.key == pygame.K_RIGHT:
                                direct = "R"
                                speed = [2,0]
                        if event.key == pygame.K_UP:
                                speed = [0,-2]
                        if event.key == pygame.K_DOWN:
                                speed = [0,2]
                if event.type == pygame.KEYUP:
                        speed = [0,0]
        myscreen.fill((255,255,255))
        myscreen.blit(myimg,mypos)
        mypos = mypos.move(speed)
        pygame.display.update()
        pygame.time.Clock().tick(50)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-20 09:00:06 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-20 09:03 编辑

试试最后代码加上
pygame.quit()
sys.exit()

或者在 while True 循环语句中加上试试:
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-20 09:00:21 | 显示全部楼层
如果你是使用IDLE运行的,关闭IDLE的运行窗口
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-20 09:59:21 | 显示全部楼层
“while True:”死循环。
必须要获取窗体事件结束循环退出程序。
pygame.event.get().type == pygame.QUIT
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-20 10:39:53 | 显示全部楼层
一开始加一个import sys
退出代码那里改一下:
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()
有的时候退出我也会卡,但一般没事的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 05:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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