mac安装完pygame后运行测试游戏显示意外退出?

mac安装完pygame后运行测试游戏显示意外退出?,第1张

可能还是环境的问题,你安装的pygame没有被识别到。 建议先试用命令pip list看下pygame会不会列出来,同时看下版本,然后再看下是不是和你当前的python版本对应。 建议安装anaconda,直接管理安装包,免去环境配置这些东西,省得出错。

来我给你 详细分析一下错误的发生原因和 解决办法...

导致 display Surface quit 发生的问题如下代码

import sys, pygame

import pdb

pygame.init()

pdb.set_trace()

screen = pygame.display.set_mode((640,480))

while 1:

event = pygame.event.poll()

if event.type == pygame.QUIT:

pygame.quit()

screen.fill((0,0,0))

pygame.display.update()

这段代码非常好理解 就是一个空白窗口 但是关闭之后会显示 display Surface quit!

问题在哪里呢? 咱们来debug 一下

import pdb

然后在pygame.quit()后面设置断点

pdb.set_trace()

运行之后 关闭窗口 你会发现 断点居然还在执行! 这就说明了 pygame.quit()并没有实际退出程序

但是他已经销毁了screen 此时在fill的时候就产生了 error

所以解决办法就是在 pygame.quit() 后面加个 break就完了.......

亲,注意缩进啊。(坑爹python缩进语言规则好讨厌~)

#修复代码

import math

import pygame

from pygame.locals import *

pygame.init()

screen = pygame.display.set_mode((600,500))

pygame.display.set_caption("The Pie Game - Press 1,2,3,4")

myfont = pygame.font.Font(None, 60)

color = 200, 80, 60

width = 4

x = 300

y = 250

radius = 200

position = x-radius, y-radius, radius*2, radius*2

piece1 = False

piece2 = False

piece3 = False

piece4 = False

while True:

    for event in pygame.event.get():

        if event.type == QUIT:

            exit()

        elif event.type == KEYUP:

            if event.key == pygame.K_ESCAPE:

                sys.exit()

            elif event.key == pygame.K_1:

                piece1 = True

            elif event.key == pygame.K_2:

                piece2 = True

            elif event.key == pygame.K_3:

                piece3 = True

            elif event.key == pygame.K_4:

                piece4 = True

                

    #clear the screen

    screen.fill((0,0,200))

你的event.key == pygame.K_1这句写到event.type == KEYUP这句的作用域外面了。当然监测不到key了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11871061.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存