鱼C论坛

 找回密码
 立即注册
查看: 857|回复: 3

pygame为啥不能初始化呢?

[复制链接]
发表于 2020-4-25 22:11:19 | 显示全部楼层 |阅读模式

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

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

x
环境为pycharm专业版,代码如下:
import pygame

def main():
    pygame.init()
    pygame.display.set_mode((800, 600))
    running = True
    while running:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
    pygame.quit()

if __name__ == '__main__':
    main()

运行后只显示
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
并未弹出窗口

网上找不到相关资料,尝试把命令从main()函数中提取出来,代码如下:
import pygame

pygame.init()
pygame.display.set_mode((800, 600))

发现这样就能显示窗口了

不知道是什么原因,于是又加了print来测试看看程序能运行到哪一步:
import pygame

print('0')

def main():
    pygame.init()
    print('1')
    pygame.display.set_mode((800, 600))
    print('2')
    pygame.display.set_caption('1111')
    print('3')
    running = True
    print('4')
    # 开启一个事件循环处理发生的事件
    while running:
        # 从消息队列中获取事件并对事件进行处理
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                running = False
    print('5')
    pygame.quit()


if __name__ == '__main__':
    main()
发现只运行到print('0')就结束了,运行后还是显示:
0
pygame 1.9.6
Hello from the pygame community. https://www.pygame.org/contribute.html
并未弹出窗口

请问大神们是什么原因啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-26 10:26:01 | 显示全部楼层
最新结果 :
昨天晚上又试了一下,发现是if __name__ == '__main__':这段判断没有被执行,把它删除后变成:
#if __name__ == '__main__':
main()
main()函数就能正常运行了。

由于用的是pycharm,我就用IDLE试了一下,发现
if __name__ == '__main__':
    main()
可以运行

又回到pycharm,把解释器从python3调整为了anaconda
发现也可以运行了。
现在最新的问题就是,pycharm里的python3解释器为什么会判断if __name__ == '__main__':错误,导致main()函数无法正常运行呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 11:35:46 | 显示全部楼层
似乎pycharm默认执行Unittests类的单元测试,Run后面有Run 'Unittests in xxx.py',这一个类会忽略if __name__ == '__main__':语句所以不执行main(),试试在顶部选框里点run下面的Run,然后选择同名文件执行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-26 23:52:16 | 显示全部楼层
Hoiste 发表于 2020-4-26 11:35
似乎pycharm默认执行Unittests类的单元测试,Run后面有Run 'Unittests in xxx.py',这一个类会忽略if __nam ...

这个昨天也试过了,没有用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 23:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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