接着上一篇文章,我们来说怎么让窗口不自己关掉。
只需要给代码加这样一点点修改:
图1这是可以复制粘贴的版本。
可以看到,就增加了13行
while True:
另外要把下面的两行
screen.blit(feichuan_image, feichuan_rect)
pygame.display.flip()
增加缩进,也就是在前边加4个空格。
接下来我们来解释一下这个while的意思。
while就是实现循环的,比如下面的代码:
图2 while首先让x = 5,接下来的意思就是先判断x是不是小于10,如果是,就执行下面(带有缩进的)两句:
x += 1
print(x)
x += 1就是把x原来的值加上1,比如原来x的值是5,执行完这句,x就等于6了。print(x)就是把x的值打出来,显示在那个黑色的框里面。
执行完这两句之后,再回去判断x是不是小于10,如果还是小于10,那就再执行一遍带有缩进的那两句,如此循环,直到x < 10这个判断不再成立为止。
执行刚才这段程序,输出是这样的:
图3可以看到输出了6,7,8,9,10。当x = 10时,while的那句判断就不成立了(10 < 10是不成立的),所以循环就结束了。
好,回到图1中的程序,13行
while True:
True就是真,也就是这个判断永远都成立,所以结果就是下面14和16两行带缩进的代码永远都执行,或者说就是feichuan_image这幅图片被一遍又一遍的画到screen这个背景上面,这样这个窗口就不会自己关掉了。
现在这个程序还有一个不好的地方,就是点右上角的小叉关闭窗口时没反应,要强制结束程序,接下来我们说怎么能让窗口顺利关掉。
把代码改成这个样子。
可以看到第15行:
for event in pygame.event.get():
网友评论