尝试设计和调用打开一个基本的定制游戏窗口,这个窗口在程序启动后就会弹出。我正在生成的窗口在默认情况下会被最小化,而不仅仅是打开。它也没有更新颜色,当我打开它所在的选项卡时,它会立即崩溃。
# 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图标关闭窗口时。任何帮助都是非常感谢的!
发布于 2022-11-30 13:08:27
问题在以下几行:
if __name__ == "__space_shooter__":
__name__
变量将不包含当前脚本的文件名。如果脚本直接运行,它将包含"__main__"
。如果脚本是由另一个脚本导入的,它将包含该其他脚本的文件名。
为了检查脚本的文件名(根据注释您想要这样做),您必须使用__file__
变量。唯一的问题是__file__
变量不仅包含文件名,还包含文件路径和文件扩展名。这就是为什么我要使用str.endswith
函数,它检查某个字符串是否以给定的字符串结尾。也有一些更复杂、更可靠的方法,但我将把它留给以下几个人:
if __file__.endswith("space_shooter.py"):
但是,更常见的做法是检查当前文件是否正在直接运行,而不是从另一个文件导入。这允许其他文件导入和使用文件中的函数和类,而不需要运行文件中的所有内容。
为此,您必须使用__name__
变量:
if __name__ == "__main__":
如上所述,当文件直接运行时,__name__
变量将包含"__main__"
。因此,我们可以将__name__
与它进行比较,以了解该文件是否直接运行。
有关__name__
变量的更多信息,有更多的解释和一个有用的例子。
https://stackoverflow.com/questions/74623774
复制相似问题