pygame是怎么实现游戏效果的? 一个拿得出手的游戏肯定不会只有单调的cmd命令行窗口,所以和图形库一样,pygame会首先新建一块用来显示图像内容的画布,并通过控制一个游戏主循环来不停的对画布内容进行更新,以呈现出更加丰富的视觉效果。
使用pygame开发游戏时,我们需要关注的是游戏主循环,因为游戏的主要实现逻辑都在这里面实现。
接下来来实现我们的第一个pygame程序。
代码:
import pygame
from pygame import locals
from sys import exit
TITLE = "第一个pygame程序"
SCREEN_SIZE = (960, 540)
is_continue = True
pygame.init()
pygame.display.set_caption(TITLE)
screen = pygame.display.set_mode(SCREEN_SIZE, 0, 32)
screen.fill((125, 150, 100))
while is_continue:
for event in pygame.event.get():
if event.type == pygame.QUIT:
exit()
elif event.type == pygame.KEYDOWN:
is_continue = False
pygame.display.update()
详细注释:
#导入库
import pygame
from pygame import locals
from sys import exit
# 顶部标题
TITLE = "第一个pygame程序"
# 画布尺寸
SCREEN_SIZE = (960, 540)
# 控制游戏主循环
is_continue = True
# 初始化pygame。
# ps: 可以理解为在这一步准备pygame画布
pygame.init()
# 设置画布顶部显示的标题
pygame.display.set_caption(TITLE)
# 设置画布的尺寸以及展示的位置(锚点位于画布左上角)
# 因为需要对这块画布进行一些操作
# 所以使用一个 screen 变量接收这块画布
screen = pygame.display.set_mode(SCREEN_SIZE, 0, 32)
# 使用一种颜色填充整块画布
screen.fill((125, 150, 100))
# 游戏主循环
while is_continue:
# 主循环的事件监听
for event in pygame.event.get():
# 事件监听使用 for 循环完成
# 并且这一个 pygame.QUIT 的判断必须存在
# 否则会陷入一个死循环
if event.type == pygame.QUIT:
exit()
# 按下键盘任意键退出主循环
elif event.type == pygame.KEYDOWN:
is_continue = False
#更新画布内容
pygame.display.update()