目录
- 前言
 - 1. 理解图像并实现图像绘制
 - 2. 代码演练-绘制背景图像
 - 3. 代码演练-绘制英雄图像
 
前言
本节,我们将使用pygame模块完成飞机大战游戏的实战开发,飞机大战游戏的简要概括如下:
- 把一些静止的图像绘制到游戏窗口中
 - 根据用户的交互或其他情况,移动这些图像,产生动画效果
 - 根据图像之间是否发生重叠,判断敌机是否被摧毁等其他情况
 
1. 理解图像并实现图像绘制
- 在游戏中,能够看到的游戏元素大多都是图像,图像文件初始是保存在磁盘上的,如果需要使用,第一步就需要被加载到内存。
 - 要在屏幕上看到一个图像的内容,需要按照三个步骤:
- 使用
pygame.image.load()加载图像的数据 - 使用游戏屏幕对象,调用
blit方法将图像绘制到指定位置(blit方法接收两个参数,第一个参数为图像地址,第二个参数为图像在屏幕中绘制的位置) - 调用
pygame.display.update()方法更新整个屏幕的显示 
 - 使用
 
提示:要想在屏幕上看到绘制的结果,就一定要调用pygame.display.update()方法
2. 代码演练-绘制背景图像
需求:
- 加载background.png创建背景
 - 将背景绘制在屏幕的(0,0)位置
 - 调用屏幕更新显示背景图像
 
具体代码演示如下所示:注意使用update方法更新背景图像,否则可能导致不显示图像。
import pygame
pygame.init()
# 创建游戏的窗口 640*642
screen = pygame.display.set_mode((640, 642))
# 绘制背景图像
# 1> 加载图像数据
bg = pygame.image.load("./background.jpg")
# 2> blit绘制图像
screen.blit(bg, (0, 0))
# 3> update更新屏幕显示
pygame.display.update()
while True:
    pass
pygame.quit()
代码运行结果如下图所示:

3. 代码演练-绘制英雄图像
需求:
- 加载mel.png创建英雄飞机
 - 将英雄飞机绘制在屏幕的(200,500)位置
 - 调用屏幕更新显示飞机图像
 
绘制英雄飞机具体代码演示如下所示:
import pygame
pygame.init()
# 创建游戏的窗口 640*642
screen = pygame.display.set_mode((640, 642))
# 绘制背景图像
# 1> 加载图像数据
bg = pygame.image.load("./background.jpg")
# 2> blit绘制图像
screen.blit(bg, (0, 0))
# 3> update更新屏幕显示
pygame.display.update()
# 绘制英雄的飞机
hero = pygame.image.load("./飞机大战资料包/images/me1.png")
screen.blit(hero, (300, 500))
pygame.display.update()
while True:
    pass
pygame.quit()
注意:./飞机大战资料包/images/me1.png路径下的me1.png图像为透明图像
- png格式的图像是支持透明的
 - 在绘制图像时,透明区域不会显示任何内容
 - 但是如果下方已经有内容,会通过透明区域显示出来
 
代码运行结果如下图所示:在原本背景图的代码基础上,有更新了绘制英雄飞机的相关代码,因此,在背景图中显示了小飞机。

	声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
		
评论(0)