脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - Python pygame绘制游戏图像

Python pygame绘制游戏图像

2022-08-11 10:57ZacheryZHANG Python

这篇文章主要介绍了Python pygame绘制游戏图像,文章围绕主题展开pygame模块完成飞机大战游戏的实战开发的案例详情,需要的朋友可以参考一下

前言

本节,我们将使用pygame模块完成飞机大战游戏的实战开发,飞机大战游戏的简要概括如下:

  • 把一些静止的图像绘制到游戏窗口
  • 根据用户的交互或其他情况,移动这些图像,产生动画效果
  • 根据图像之间是否发生重叠,判断敌机是否被摧毁等其他情况

1. 理解图像并实现图像绘制

  • 在游戏中,能够看到的游戏元素大多都是图像,图像文件初始是保存在磁盘上的,如果需要使用,第一步就需要被加载到内存。
  • 要在屏幕上看到一个图像的内容,需要按照三个步骤:
    • 使用pygame.image.load()加载图像的数据
    • 使用游戏屏幕对象,调用blit方法将图像绘制到指定位置(blit方法接收两个参数,第一个参数为图像地址,第二个参数为图像在屏幕中绘制的位置)
    • 调用pygame.display.update()方法更新整个屏幕的显示

提示:要想在屏幕上看到绘制的结果,就一定要调用pygame.display.update()方法

2. 代码演练-绘制背景图像

需求:

  • 加载background.png创建背景
  • 将背景绘制在屏幕的(0,0)位置
  • 调用屏幕更新显示背景图像

具体代码演示如下所示:注意使用update方法更新背景图像,否则可能导致不显示图像。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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()

代码运行结果如下图所示:

Python pygame绘制游戏图像

3. 代码演练-绘制英雄图像

需求:

  • 加载mel.png创建英雄飞机
  • 将英雄飞机绘制在屏幕的(200,500)位置
  • 调用屏幕更新显示飞机图像

绘制英雄飞机具体代码演示如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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格式的图像是支持透明的
  • 在绘制图像时,透明区域不会显示任何内容
  • 但是如果下方已经有内容,会通过透明区域显示出来

代码运行结果如下图所示:在原本背景图的代码基础上,有更新了绘制英雄飞机的相关代码,因此,在背景图中显示了小飞机。

Python pygame绘制游戏图像

到此这篇关于Python pygame绘制游戏图像的文章就介绍到这了,更多相关Python绘制游戏图像内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://juejin.cn/post/7129132781761888286

延伸 · 阅读

精彩推荐
  • Pythonpython sys.stdin和sys.stdout的用法说明

    python sys.stdin和sys.stdout的用法说明

    这篇文章主要介绍了python sys.stdin和sys.stdout的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    赖涤生6842021-09-19
  • PythonPython模块_PyLibTiff读取tif文件的实例

    Python模块_PyLibTiff读取tif文件的实例

    今天小编就为大家分享一篇Python模块_PyLibTiff读取tif文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    ninesun1113542020-04-26
  • Pythontf.truncated_normal与tf.random_normal的详细用法

    tf.truncated_normal与tf.random_normal的详细用法

    本篇文章主要介绍了tf.truncated_normal与tf.random_normal的详细用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    mstar199210022021-01-19
  • PythonPython使用Redis实现作业调度系统(超简单)

    Python使用Redis实现作业调度系统(超简单)

    Redis作为内存数据库的一个典型代表,已经在很多应用场景中被使用,这里仅就Redis的pub/sub功能来说说怎样通过此功能来实现一个简单的作业调度系统。这...

    kongxx7312020-08-17
  • PythonPython比较配置文件的方法实例详解

    Python比较配置文件的方法实例详解

    工作中最常见的配置文件有四种:普通key=value的配置文件、Json格式的配置文件、HTML格式的配置文件以及YMAML配置文件。这篇文章主要介绍了Python比较配置文...

    Leohahah5232021-07-02
  • PythonPandas的read_csv函数参数分析详解

    Pandas的read_csv函数参数分析详解

    这篇文章主要介绍了Pandas的read_csv函数参数分析详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    Lavi_qq_29101380257462021-07-29
  • PythonPython 存储字符串时节省空间的方法

    Python 存储字符串时节省空间的方法

    这篇文章主要介绍了Python 存储字符串时节省空间的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...

    小小后端10062021-06-19
  • Pythonpython3解析库BeautifulSoup4的安装配置与基本用法

    python3解析库BeautifulSoup4的安装配置与基本用法

    简单来说,BeautifulSoup就是Python的一个HTML或XML的解析库,我们可以用它来方便地从网页中提取数据,下面这篇文章主要给大家介绍了关于python3解析库Beauti...

    Py.qi5062021-03-10