Pygame keeps crashing on mac
我开始学习Pygame,写了一个简单的程序在屏幕上显示一些文本。
1 2 3 4 5 6 7 8 9 10 | import pygame, time pygame.init() window = pygame.display.set_mode((600,300)) myfont = pygame.font.SysFont("Arial", 60) label = myfont.render("Hello Pygame!", 1, (255, 255, 0)) window.blit(label, (100, 100)) pygame.display.update() time.sleep(15) pygame.quit() |
但它总是崩溃。我在用Python2.7
。
问题是,您只运行一次代码,而不重复每帧需要重复的代码行。
然后调用
要解决此问题:
在while循环中包含一些代码,这些代码将在每个帧上运行,从而保持程序的运行和响应。
确保初始化代码只运行一次。
添加一些事件处理,让用户在单击"X"按钮时退出程序。
包括一个
Clock ,允许一个FPS帽。每一帧都用黑色填充屏幕
使用
pygame.quit() 退出游戏以退出pygame窗口,使用sys.exit() 退出python线程。
小精灵
一些有用的补充:
小精灵
Pygame游戏中的
下面是修订后的代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | import pygame import sys # this code only needs to be ran once pygame.init() window = pygame.display.set_mode((600,300)) myfont = pygame.font.SysFont("Arial", 60) label = myfont.render("Hello Pygame!", 1, (255, 255, 0)) clock = pygame.time.Clock() FPS = 30 while True: #allows user to exit the screen for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() sys.exit() # this code should be ran every frame window.fill((0, 0, 0)) window.blit(label, (100, 100)) pygame.display.update() clock.tick(FPS) |
我希望这个答案对您有所帮助,如果您还有任何问题,请随时在下面发表评论!