跟着《python从入门到实践》已经有一段时间了,终于到了刺激的游戏制作环节,但是教材里的代码进度比较快,所有的代码都要慢慢熟悉
import sys
import pygame
def run_practice():
pygame.init()
screen = pygame.display.set_mode((1200,800))
pygame.display.set_caption("practice project")
while True:
pygame.display.flip()
run_practice()
这段代码里前面几段都没多大问题,写多了大概也就也就理解了,直到
while True:
pygame.display.flip()
教材里说是会把之前绘制的窗口显示出来,这个时候我就挺纳闷,那为什么不把制作窗口放到循环里,就是把上两行代码换成
while True:
screen = pygame.display.setmode((1200,800))
利用主循环就会不停地绘制出我想要的尺寸的窗口。
事实证明,我这样写同样能够显示窗口,可是过了大概三分钟我没有关闭代码的运行过程电脑就说python执行的程序正在占用大量的内存。
原来
while True:
pygame.display.flip()
这个代码的准确作用是擦去旧的窗口再重新显示新的窗口,就是屏幕显示的永远只有一个窗口,而
while True:
screen = pygame.display.setmode((1200,800))
会不同绘制出新的窗口,旧的窗口电脑还依旧保存着,所以运行的时候会出现内存不足的状况。