dequantianhe 发表于 2020-5-20 08:52:30

pygame窗口无法关闭了。。。

如下图所示:

点击右上角的关闭,窗口无响应。

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

speed =
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 =
                        if event.key == pygame.K_UP:
                                speed =
                        if event.key == pygame.K_DOWN:
                                speed =
                if event.type == pygame.KEYUP:
                        speed =
        myscreen.fill((255,255,255))
        myscreen.blit(myimg,mypos)
        mypos = mypos.move(speed)
        pygame.display.update()
        pygame.time.Clock().tick(50)

Twilight6 发表于 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()

qiuyouzhi 发表于 2020-5-20 09:00:21

如果你是使用IDLE运行的,关闭IDLE的运行窗口

773254968 发表于 2020-5-20 09:59:21

“while True:”死循环。
必须要获取窗体事件结束循环退出程序。
pygame.event.get().type == pygame.QUIT

LittleLito666 发表于 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()
有的时候退出我也会卡,但一般没事的
页: [1]
查看完整版本: pygame窗口无法关闭了。。。