pygame基础

Posted by aclyyx on 08-20,2022

pygame程序基本结构

通过下面的代码,可以编写一个最基础的pygame结构,运行得到一个游戏窗口。

# 引入pygame包
import pygame
# 初始化pygame
pygame.init()
# 定义底色(非必须)
BLACK = 0, 0, 0
# 设置显示模式和窗口大小,并获得一个Surface对象
screen = pygame.display.set_mode((600, 400))
# 通过循环完成逻辑及画面更新
while True:
	# 迭代遍历pygame事件对象
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    # 填充黑色背景
    screen.fill(BLACK)
    # 更新画面
    pygame.display.update()

pygame.display

pygame.display.set_mode

该方法返回一个Surface对象

pygame.FULLSCREEN 创建一个全屏显示对象
pygame.OPENGL 创建一个OpenGL显示对象
pygame.RESIZABLE 创建一个可以变换窗口大小的显示对象
pygame.NOFRAME 创建一个显示对象窗口,该窗口没有边框且不能被操作
pygame.SCALED resolution depends on desktop size and scale graphics
pygame.SHOWN 创建并显示窗口(默认值)
pygame.HIDDEN 创建并隐藏窗口(不禁要问,创建这样的窗口干嘛?)

pygame.display.set_icon

set_icon(Surface) -> None
设置窗口图标,在部分系统中不允许修改窗口图标,所以该方法要在set_mode之前调用。

icon = pygame.image.load("./dsBall.png")
pygame.display.set_icon(icon)

pygame.display.set_caption

set_caption(title, icontitle=None) -> None
如果显示器有窗口标题,此函数设置窗口标题。 部分系统支持用于最小化显示的替代短标题。

pygame.display.set_caption("动森弹弹弹")

pygame.time

pygame.time.Clock()

创建一个时钟对象

tick()

tick(framerate=0) -> milliseconds
更新时钟,用于控制程序运行时的帧率

fps = 120
fclock = pygame.time.Clock()
...
while True:
	...
    # 通过该方法可以控制程序运行时的帧率(上面的程序加上)
	fclock.tick(fps)

pygame.image

图像操作类

load()

load(filename) -> Surface
读取图片文件返回一个Surface对象

ball = pygame.image.load("./dsBall.png")