首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >游戏程序不断崩溃,显示窗口不合作,

游戏程序不断崩溃,显示窗口不合作,
EN

Stack Overflow用户
提问于 2022-11-30 06:43:19
回答 1查看 27关注 0票数 -1

尝试设计和调用打开一个基本的定制游戏窗口,这个窗口在程序启动后就会弹出。我正在生成的窗口在默认情况下会被最小化,而不仅仅是打开。它也没有更新颜色,当我打开它所在的选项卡时,它会立即崩溃。

代码语言:javascript
运行
复制
# I'm running Windows 10 with Spyder (Python 3.9), if that matters
# This is the entire code:

import pygame

WIDTH, HEIGHT = 900, 500
WIN = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Space Shooter Friends (Version 1.0)")

# Color presets
WHITE = (255,255,255)
BLACK = (0,0,0)

# Event loop
def main():
   run = True
    
   while run:
       for event in pygame.event.get():
           if event.type == pygame.QUIT:
               run = False
       WIN.fill(WHITE) 
       pygame.display.update()
   pygame.quit()

# Ensure the game only executes in the file named: space_shooter.py
if __name__ == "__space_shooter__":
   main()   

就上下文而言,我是一个初级的学生,现在我只想生成一个基本的白色显示器,尺寸是:9 OWx500h,并且居中,这样游戏窗口的中心就会叠加在我的电脑屏幕的中心上。我希望这个窗口在程序开始运行时立即弹出,并且它应该不确定地打开一段时间,或者直到使用X图标退出。

它似乎正在按预期立即生成窗口,但由于某种原因,它将其放置在最小化选项卡中,而不是打开的窗口显示中。如果我单击选项卡,窗口就会弹出,但是无论我作为参数插入到WIN.fill(R、B、G)中的值是什么,它都是黑色的。此外,该程序立即变得没有响应的消息:(没有响应)旁边的游戏标题(在游戏窗口的顶部,而不是在间谍终端)。

因为某种原因,它似乎无法更新,可能会导致它崩溃,但我不太确定。我没有从Python那里得到任何运行时或语法错误,但我确实收到了一条"Python没有响应“的消息,它来自于pygame窗口中的Windows,以及每当我试图使用X图标关闭窗口时。任何帮助都是非常感谢的!

EN

Stack Overflow用户

发布于 2022-11-30 13:08:27

问题在以下几行:

代码语言:javascript
运行
复制
if __name__ == "__space_shooter__":

__name__变量将不包含当前脚本的文件名。如果脚本直接运行,它将包含"__main__"。如果脚本是由另一个脚本导入的,它将包含该其他脚本的文件名。

为了检查脚本的文件名(根据注释您想要这样做),您必须使用__file__变量。唯一的问题是__file__变量不仅包含文件名,还包含文件路径和文件扩展名。这就是为什么我要使用str.endswith函数,它检查某个字符串是否以给定的字符串结尾。也有一些更复杂、更可靠的方法,但我将把它留给以下几个人:

代码语言:javascript
运行
复制
if __file__.endswith("space_shooter.py"):

但是,更常见的做法是检查当前文件是否正在直接运行,而不是从另一个文件导入。这允许其他文件导入和使用文件中的函数和类,而不需要运行文件中的所有内容。

为此,您必须使用__name__变量:

代码语言:javascript
运行
复制
if __name__ == "__main__":

如上所述,当文件直接运行时,__name__变量将包含"__main__"。因此,我们可以将__name__与它进行比较,以了解该文件是否直接运行。

有关__name__变量的更多信息,有更多的解释和一个有用的例子

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74623774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档