Pygame的基本应用
Pygame 有很多模块,每个模块又有很多方法,在此不能够逐一讲解,所以,我们通过一个实例来学习 Pygame,然后再分解代码,讲解代码中的模块。Pygame 有很多模块,每个模块又有很多方法,在此不能够逐一讲解,所以,我们通过一个实例来学习 Pygame,然后再分解代码,讲解代码中的模块。
创建一个游戏窗口,宽和高设置为 640*480。代码如下:
import sys #导入sys模块 import pygame #导入pygame模块 pygame.init() # 初始化pygame size = width,height = 640,480 #设置窗口 screen = pygame.display.set_mode (size)#显示窗口
上述代码中,首先导入 pygame 模块,然后调用 init() 方法初始化 pygame 模块。接下来,设罝窗口的宽和高,最后使用 display 模块显示窗体。display 模块的常用方法如下所示:
pygame.dispaly.init #初始化 displav 模块 pygame.dispaly.quit #结束 display 模块 pygame.dispaly.get_init #如果 display 模块己经被初始化,则返回 True pygame.dispaly.set_mode #初始化一个淮备显示的界面 pygame.dispaly.get_surface #获取当前的 Surface 对象 pygame.dispaly.flip #更新整个待显示的 Surface 对象到屏幕上 pygame.dispaly.update #更新部分内容显示到屏幕上,如果没有参数,则与 flip 功能相同
运行上述代码,会出现一个一闪而过的黑色窗口,这是因为程序执行完成后,会自动关闭如果让窗口一直显示,需要使用 while True 让程序一直执行,此外,还需要设置关闭按钮。具体代码如下:
import sys #导入sys模块 import pygame #导入pygame模块 pygame.init() # 初始化pygame size = width,height = 640,480 #设置窗口 screen = pygame.display.set_mode (size)#显示窗口 # 执行死循环,确保窗口一直显示 while True : for event in pygame.event.get() : # 遍历所有事件 if event.type == pygame.QUIT: # 如果单击关闭窗口,则退出 pygame.quit() #退出pygame sys.exit()
上述代码中,添加了轮询事件检测。pygamc.event.get() 能够获取事件队列,使用 for...in 遍历事件然后根据 type 属性判断事件类型。这里的事件处理方式与 GUI 类似,如 event.type 等于 pygame.QUIT 表示检测到关闭 pygame 窗口事件,pygame.KEYDOWN 表示键盘按下事件,pygame.MOUSEBUTTONDOWN 表示鼠标按下事件等。
在窗口中添加小球。我们先准备好一张 ball.png 图片,然后加载该图片,最后将图片显示在窗口中,如下代码所示:
本文未完全显示,开通会员查看全文......