我开始学习游戏,写了一个简单的程序在屏幕上显示一些文字。
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()但它一直在崩溃。我用的是丙酮2.7

发布于 2018-01-20 10:56:18
问题是您只运行了一次代码,而不是重复每个帧需要重复的代码行。
然后调用pygame.quit(),而不使用quit()退出Python线程,这只会导致窗口“崩溃”或没有响应。
解决此问题的:
一些有用的补充
Clock。pygame.quit()退出pygame窗口,sys.exit()退出Python线程。游戏中的Clock允许您指定FPS。在每个主游戏循环迭代(frame)结束时,您将调用clock.tick(FPS)来等待确保游戏在指定框架下运行的时间。
下面是修改后的代码示例:
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)我希望这个答案对你有帮助,如果你还有任何问题,请在下面发表评论!
https://stackoverflow.com/questions/48354601
复制相似问题