你好,我是悦创。接下来三十天,我将持续更新 Python pygame 的基础游戏开发教程。文章都会对应视频教程,视频教程将在公众号:AI悦创,发布。

目录

本次,文章目标:

  1. Python 的第三方库
  2. pygame 的简单介绍
  3. 创建窗体、背景

1. Python 的第三方库

Python 本身具有一些基本功能和函数,但是明显并不能覆盖所有我们需要的功能,比如图像的处理、大量数据计算分析等,这时就是要第三方库。

这种第三方库在 Python 中使用 pip 来安装、升级、卸载等管理;Python 官方库网址:https://pypi.org/

接下来的文章都会使用 pygame 库来开发 Python 游戏,我们就需要安装 pygame,在终端输入以下命令来安装 pygame:

pip install pygame

安装时需要连接网络,见到 ”done“ ”success“ 即表示安装成功,如果在后续编码时无法找到 pygame 库,重装即可。

2. pygame 简单介绍

pygame 是 Python 中比较流行的游戏库,它提供的函数能够处理图像、文字、声音等,也有一些商业游戏项目采用 pygame 开发,但一般来说不适合开发大型游戏,我们学习 Python 编程用它比较合适(另外从此处开始,就要大量使用函数等内容了,难度会有所上升)。

案例 1: 新建文件来测试一下 pygame 安装效果,同时学习库的导入方法。

# file:Lesson_01.py
import pygame # 导入 pygame 库
# 然后导入 pygame 库中的 aliens 例子
import pygame.examples.aliens
# 运行这个 aliens 的主函数入口
pygame.examples.aliens.main()

代码解析:

  • import pygame :要使用额外的库,都需要通过 import 来导入对应的库;
  • 如果只想导入库的某一部分功能,也可以使用 “from 库名称 import 具体功能” 的方法。
  • 本例子是自带的参考例子,一个外星人入侵小游戏,运行没问题表示安装 pygame 成功,examples 下层还有很多其他的样例游戏,可自行查看。

运行结果:

3. 创建窗体、背景

案例 1: 通过编写一个窗体界面,来体验 pygame 的初始化、颜色处理、事件获取等功能。

说明:

开始游戏编写之后代码较长,后文会都会按步骤给出,并进行说明,有的还会有简易流程图,另外代码注释中也会写明关键提示。

# file:Lesson_02.py
import pygame # 导入 pygame 库
pygame.init() # 调用初始化函数
# 设定窗口的宽和高
size = width, height = 600, 400
# ↑ 上述多元赋值后又赋值给 size,成为元组
# 接下来创建屏幕,也是变量存储就可以
screen = pygame.display.set_mode(size)
# ---第一步完毕,程序运行会有窗口闪过---

代码解析:

  • size 处,先进行了多元赋值,将两个数值赋值给 width 和 height ,然后又赋值给了 size,变成元组(类似列表,但不可改变),这时整体形成多赋值,如果打印 size 结果会是 (600, 400) 。
  • screen 接收了 pygame 建立的对象,对象这个概念后面会再学。

运行后会有如下图一闪而过的黑色窗体。

说明:

  • 接下来跟着第一步后面编写,主要完成 持续运行画面更新单击右上角 x 退出程序 ,3 个功能。

  • 退出功能需要使用 sys 库,这是一个内置库,不用额外下载安装,直接在文件头部 import sys 即可。

想要程序持续运行,需要使用循环

import sys
# 想要程序持续运行,需要使用循环
while True:# 在循环中,每循环一次就判断要不要退出for event in pygame.event.get():# 使用 for 循环获取当前 pygame 窗体事件if event.type == pygame.QUIT:# 如果获取到的事件类型是 QUIT(退出)sys.exit() # 那么调用系统退出# 每次判断完毕后,就要更新窗口画面pygame.display.update() # update 意为更新
# ---第二步完毕,现在窗口不会闪退,可用鼠标关闭

代码解析:

  • 每行代码我都有解析,希望好好看看注释;
  • 注意缩进,每次遇到循环、判断、函数等,都要注意 4 个空格缩进,这样才能体现层级关系,才能让程序按预想正常运行(Python 严格依靠缩进来区别不同的代码块)
  1. 接下来,添加窗口名称和背景颜色,这两句代码都写在循环前面。
# ↓ 可以设定窗口的名称
pygame.display.set_caption("我的游戏")
# 定义一个列表存储背景色,采用 RGB 颜色表示
# 可搜索 RGB 颜色对照表选择自己喜欢的颜色数值
bgcolor = [0, 255, 255]
# 背景色需要使用 fill() 填充,我们放在循环里
  1. 实际的填充颜色的代码写在循环里面。
screen.fill(bgcolor) # 填充背景颜色

代码解析:

  • bgcolor:是一个列表,它保存了背景颜色的 RGB 信息,但是要注意,变量在实际使用前,都只是数字容器而已,并不能设定完变量就看到背景效果。

  • 背景色设定放在循环中,这样就可以每次刷新背景了,这时才真的使用了 bgcolor 中存储的数值。

为了,让小白也能看懂,我把本阶段的完整代码放出来。

import pygame # 导入 pygame 库
import sys
pygame.init() # 调用初始化函数
# 设定窗口的宽和高
size = width, height = 600, 400
# ↑ 上述多元赋值后又赋值给 size,成为元组
# 接下来创建屏幕,也是变量存储就可以
screen = pygame.display.set_mode(size)
# ---第一步完毕,程序运行会有窗口闪过---# ↓ 可以设定窗口的名称
pygame.display.set_caption("我的游戏")
# 定义一个列表存储背景色,采用 RGB 颜色表示
# 可搜索 RGB 颜色对照表选择自己喜欢的颜色数值
bgcolor = [0, 255, 255]
# 背景色需要使用 fill() 填充,我们放在循环里# 想要程序持续运行,需要使用循环
while True:# 在循环中,每循环一次就判断要不要退出for event in pygame.event.get():# 使用 for 循环获取当前 pygame 窗体事件if event.type == pygame.QUIT:# 如果获取到的事件类型是 QUIT(退出)sys.exit() # 那么调用系统退出screen.fill(bgcolor) # 填充背景颜色# 每次判断完毕后,就要更新窗口画面pygame.display.update() # update 意为更新
# ---第二步完毕,现在窗口不会闪退,可用鼠标关闭

再次运行程序,这时窗体名称和背景就变了。

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。QQ、微信在线,随时响应!V:Jiabcdefh

01-初识 pygame 游戏开发相关推荐

  1. python和pygame游戏开发指南_学习记录

    <python和pygame游戏开发指南> Making Games With Python and Palme [美]Ai Sweigart 著,李强 译,2015.12第一版 文章目录 ...

  2. 《Python和Pygame游戏开发指南》——2.16 pygame.display.update()函数

    本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第2章,第2.16节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...

  3. 《Python和Pygame游戏开发指南》——1.12 图书中的文本折行

    本节书摘来自异步社区<Python和Pygame游戏开发指南>一书中的第1章,第1.12节,作者[美]Al Sweigart(斯维加特), 李强 译,更多章节内容可以访问云栖社区" ...

  4. Pygame 游戏开发 实战 1

    Pygame 游戏开发 第三课 实战 1 动态彩色圆环 选择数字 指针时钟 动态彩色圆环 通过圆形和线的绘制, 和文字的添加, 来实现一个简单的数字选择小游戏. 代码: import pygame f ...

  5. Pygame 游戏开发 图形绘制 键鼠事件

    [Pygame] 游戏开发 第二课 图形绘制 & 键鼠事件 图形绘制 圆形绘制 绘制矩形 绘制直线 绘制圆弧 案例 键鼠事件 键盘事件 鼠标事件 图形绘制 圆形绘制 格式: pygame.dr ...

  6. pygame 游戏开发

    简单的战旗游戏开发学习 在网上找寻教程之后搞出了这么个雏形 游戏介绍 游戏实现了战斗场景的回合制玩法: 对战双方每个生物每一轮有一次行动机会,可以行走或攻击对方. 每个生物属性有:行走范围,速度,生命 ...

  7. python编程之pygame游戏开发系列——软件简介与安装

    视频地址 编程工具选择 IDLE:初级入门 vscode:我们将使用的软件. pycharm:免费 anaconda:科学计算 vscode 的安装 下载 地址 地址2:自动下载符合你系统的安装程序 ...

  8. python编写游戏怎么打包——详解python+pygame游戏开发之使用Py2exe打包游戏为exe文件

    python编写游戏怎么打包 1.简介 2.软件准备 3.打包流程 最近在用python+pygame 开发游戏,写完以后在分享给朋友玩的时候遇到了很大的问题,只有搭建了环境才能运行python脚本. ...

  9. python血条游戏代码_手把手Python和pygame游戏开发教程(二)

    欢迎,来自IP地址为:114.99.15.226 的朋友 前面教程第一部分已经成了小兔子的正确移动和转向,现在需要给它添加更多的动作以进行游戏的进一步开发. 让小兔子可以射箭 你的小兔子可以正确移动后 ...

最新文章

  1. python多线程没用_python的多线程到底有没有用?
  2. 【Android 逆向】Android 权限 ( adb 降权相关的属性 | ro.secure 属性 | ro.debuggable 属性 | service.adb.root 属性 )
  3. Geospark加载PostgreSQL数据库
  4. mysql 5.6压缩安装_MySQL 5.6 for Windows 解压缩版配置安装
  5. html层次选择器例题,详解强大的jQuery选择器之基本选择器、层次选择器
  6. DWA泊车算法的实现
  7. python选择路径窗口_python选择路径
  8. 基于Boost无锁队列实现的内存池
  9. DE29 Matrix Exponentials
  10. 模糊逻辑学习--建立Mamdani系统(GUI)
  11. XLSTransformer导出多sheet页
  12. Kerberos安装及使用2(Kerberos服务器KDC安装及配置)
  13. 新能源汽车,不需要“共享充电宝”
  14. [BZOJ]4987: Tree 树形DP
  15. 宣传片拍摄制作,后期剪辑师的重要性
  16. csgo删除机器人_《CSGO》补丁突然移除补位机器人 队友掉线只能4v5!
  17. 如何练胸肌(完整篇)
  18. HTML+CSS+JavaScript知识点总结
  19. MySQL 团队开发规范
  20. Excel字符串截取

热门文章

  1. Android.bp编译提示ninja: error: unknown target ‘MODULES-IN-xxx‘终极指南
  2. 【多图软文】使用Team@OSC进行团队协作
  3. selenium | firefox代理设置
  4. SQl 固定日期 年、月、日(加,减 1)
  5. 沙盒效应(Sandbox Effect)
  6. SE16N与SE16区别
  7. USBPCAP工具介绍
  8. 基于web的IT技术论坛
  9. 电脑重装系统教学,一键傻瓜式操作,80%的人都学会了
  10. 使用DESeq2进行两组间的差异分析