Python pygame绘制游戏图像

 更新时间:2022年08月11日 08:29:15   作者:ZacheryZHANG  
这篇文章主要介绍了Python pygame绘制游戏图像,文章围绕主题展开pygame模块完成飞机大战游戏的实战开发的案例详情,需要的朋友可以参考一下

前言

本节,我们将使用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格式的图像是支持透明的
  • 在绘制图像时,透明区域不会显示任何内容
  • 但是如果下方已经有内容,会通过透明区域显示出来

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

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

相关文章

  • 对Python Class之间函数的调用关系详解

    对Python Class之间函数的调用关系详解

    今天小编就为大家分享一篇对Python Class之间函数的调用关系详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • 自定义Django_rest_framework_jwt登陆错误返回的解决

    自定义Django_rest_framework_jwt登陆错误返回的解决

    这篇文章主要介绍了自定义Django_rest_framework_jwt登陆错误返回的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • PyQt5 文本输入框自动补全QLineEdit的实现示例

    PyQt5 文本输入框自动补全QLineEdit的实现示例

    这篇文章主要介绍了PyQt5 文本输入框自动补全QLineEdit的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)

    python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)

    这篇文章主要介绍了python 基于opencv对图像进行各种处理,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • python openpyxl打开文件关闭问题

    python openpyxl打开文件关闭问题

    这篇文章主要介绍了python openpyxl打开文件关闭问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • pip install python 快速安装模块的教程图解

    pip install python 快速安装模块的教程图解

    这篇文章主要介绍了pip install python 如何快速安装模块,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • appium测试之APP元素定位及基本工具介绍

    appium测试之APP元素定位及基本工具介绍

    看了我文章了相信都了解了web端的元素定位了,没看的,既然进来了那么肯定多多少少知道些,本文主要来介绍APP的元素定位有哪些定位方式,我们又怎么去连接APP,然后通过工具去获取元素
    2021-09-09
  • Python中函数的返回值示例浅析

    Python中函数的返回值示例浅析

    这篇文章主要给大家介绍了关于Python中函数返回值的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-08-08
  • 用Python实现网易云音乐的数据进行数据清洗和可视化分析

    用Python实现网易云音乐的数据进行数据清洗和可视化分析

    这篇文章主要为大家详细介绍了Python实现Kmeans聚类算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • python使用tkinter打造三维绘图系统的示例代码

    python使用tkinter打造三维绘图系统的示例代码

    Python 的 tkinter 模块是一个常用的 GUI(图形用户界面)工具包,它能够让你创建窗口应用程序,你可以使用它来构建用户友好的界面,包括按钮、标签、文本框、列表框等各种控件,本文讲给大家介绍如何使用tkinter打造三维绘图系统,需要的朋友可以参考下
    2023-08-08

最新评论