Python工程师之Python编程:从入门到实践【3.6】

12.4 添加飞船图像

        下面将飞船加入游戏中。为了在屏幕上绘制玩家的飞船,我们将加载一幅图像,再 使用Pygame方法blit() 绘制它。 为游戏选择素材时,务必要注意许可。最安全、最不费钱的方式是使用Pixabay等网 站提供的免费图形,无须授权许可即可使用并修改。 在游戏中几乎可以使用任何类型的图像文件,但使用位图(.bmp)文件最为简单, 因为Pygame默认加载位图。

        虽然可配置Pygame以使用其他文件类型,但有些文件类 型要求你在计算机上安装相应的图像库。大多数图像为.jpg、.png或.gif格式,但 可使用Photoshop、GIMP和Paint等工具将其转换为位图。 选择图像时,要特别注意背景色。请尽可能选择背景为透明或纯色的图像,便于使 用图像编辑器将其背景替换为任意颜色。图像的背景色与游戏的背景色匹配时,游 戏看起来最漂亮。

        你也可以将游戏的背景色设置成图像的背景色。 就游戏《外星人入侵》而言,可使用文件ship.bmp(如图12-1所示),该文件可在 本书主页(ituring.cn/book/2784)的“随书下载”中找到。这个文件的背景色与 项目使用的设置相同。请在项目文件夹(alien_invasion)中新建一个名为images 的文件夹,并将文件ship.bmp保存在其中。

a8eb43395e1c4899b13f72c2b60ff114.png

12.4.1 创建Ship 类

选择用于表示飞船的图像后,需要将其显示到屏幕上。我们创建一个名为ship 的模块,其中包含Ship 类,负责管理飞船的大部分行为。
 

ship.py
import pygameclass Ship:
"""管理飞船的类"""
def __init__(self, ai_game):
"""初始化飞船并设置其初始位置。"""
❶ self.screen = ai_game.screen
❷ self.screen_rect = ai_game.screen.get_rect()
# 加载飞船图像并获取其外接矩形。
❸ self.image = pygame.image.load('images/ship.bmp')
self.rect = self.image.get_rect()
# 对于每艘新飞船,都将其放在屏幕底部的中央。
❹ self.rect.midbottom = self.screen_rect.midbottom
❺ def blitme(self):
"""在指定位置绘制飞船。"""
self.screen.blit(self.image, self.rect)

        Pygame之所以高效,是因为它让你能够像处理矩形(rect 对象)一样处理所有的 游戏元素,即便其形状并非矩形。像处理矩形一样处理游戏元素之所以高效,是因 为矩形是简单的几何形状。例如,通过将游戏元素视为矩形,Pygame能够更快地判 断出它们是否发生了碰撞。这种做法的效果通常很好,游戏玩家几乎注意不到我们 处理的并不是游戏元素的实际形状。在这个类中,我们将把飞船和屏幕作为矩形进 行处理。

        定义这个类之前,导入了模块pygame 。Sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BinaryStarXin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值