《Python和Pygame游戏开发指南》——2.19 用pygame.image.load()和blit()绘制图像

简介:

本节书摘来自异步社区《Python和Pygame游戏开发指南》一书中的第2章,第2.19节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.19 用pygame.image.load()和blit()绘制图像

如果你想要在屏幕上绘制简单的形状,绘制函数已经很好用了,但是,很多游戏都有图像(也叫作精灵,sprite)。Pygame能够从PNG、JPG、GIF和BMP图像文件中,将图像加载到Surface对象上。这些图像文件格式的区别参见http://invpy.com/formats

猫的图像存储在一个名为cat.png 的文件中。要加载这个文件的图像,将字符串'cat.png'传递给pygame.image.load()函数。pygame.image.load()函数调用将会返回一个Surface对象,图像已经绘制于其上。这个Surface对象将会是和显示Surface对象不同的另一个Surface对象,因此,我们必须将图像的Surface对象复制到显示Surface对象上。位图复制(Blitting)就是将一个Surface的内容绘制到另一个Surface之上。这通过blit() Surface对象方法来完成。

如果在调用pygame.image.load()的时候得到了一条错误消息,如“pygame. error: Couldn't open cat.png”,那么,在运行程序之前,请确保cat.png文件和catanimation.py位于同一文件夹之中。


screenshot

动画程序的第39行使用blit()方法把catImg复制到了DISPLAYSURF。blit()方法有两个参数。第一个参数是源Surface对象,这是将要复制到DISPLAYSURF Surface对象上的内容。第2个参数是两个整数的一个元组,这两个整数表示图像应该复制到的位置的左上角的X 和Y 坐标。

如果catx和caty设置为100和200,catImg的宽度为125,高度为79,这个blit()调用将会把该图像复制到DISPLAYSURF上,以使得catImg的左上角的XY 坐标为(100, 200),而其右下角的XY 坐标为(225, 279)。

注意,不能复制当前“锁定”的一个Surface(例如,通过其生成了一个PixelArray对象并且还没有删除该对象)。

游戏循环剩下的部分只是修改catx、caty和direction变量,以使得猫在窗口中移动。还有一个pygame.event.get()调用负责处理QUIT事件。

相关文章
|
1月前
|
人工智能 数据可视化 机器人
【Python】Python实现五子棋游戏(带可视化界面)【独一无二】
【Python】Python实现五子棋游戏(带可视化界面)【独一无二】
|
18天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
PYTHON TENSORFLOW 2二维卷积神经网络CNN对图像物体识别混淆矩阵评估|数据分享
PYTHON TENSORFLOW 2二维卷积神经网络CNN对图像物体识别混淆矩阵评估|数据分享
|
4天前
|
监控 算法 计算机视觉
探索图像边缘:使用Python进行轮廓检测
探索图像边缘:使用Python进行轮廓检测
25 3
|
4天前
|
机器学习/深度学习 计算机视觉 Python
使用Python改变图像颜色的实用指南
使用Python改变图像颜色的实用指南
9 1
|
10天前
|
机器学习/深度学习 计算机视觉 Python
【Python 机器学习专栏】图像数据的特征提取与预处理
【4月更文挑战第30天】本文探讨了图像数据的特征提取与预处理在机器学习中的重要性。图像数据具有大容量、信息丰富和冗余性高的特点。特征提取涉及颜色、纹理和形状特征;预处理包括图像增强、去噪和分割。Python的OpenCV和Scikit-image库在处理这些任务时非常有用。常见的特征提取方法有统计、变换和基于模型的方法,而预处理应注意保持图像真实性、适应性调整及验证评估。有效的特征提取和预处理能提升模型性能,Python工具使其更高效。
|
10天前
|
机器学习/深度学习 PyTorch 算法框架/工具
Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化
Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化
|
11天前
|
机器学习/深度学习 人工智能 计算机视觉
使用Python实现简单的图像识别应用
本文介绍了如何使用Python编写一个简单的图像识别应用程序。通过结合Python的图像处理库和机器学习库,我们可以轻松地构建一个能够识别特定物体或图案的程序。本文将从安装必要的库开始,然后逐步介绍如何编写代码来实现图像的加载、处理和识别。
|
13天前
|
计算机视觉 Python
【python版CV】图像轮廓&模板匹配
【python版CV】图像轮廓&模板匹配
|
13天前
|
计算机视觉 Python
【python版CV】—图像基本操作
【python版CV】—图像基本操作
|
17天前
|
存储 Python
Python 一步一步教你用pyglet制作“彩色方块连连看”游戏
Python 一步一步教你用pyglet制作“彩色方块连连看”游戏
38 0