《Python 游戏开发从入门到精通》循序渐进地讲解了使用Python语言开发游戏程序的核心知识,并通过具体实例的实现过程演练了游戏开发的方法和流程。全书共12章,主要内容有使用Python内置函数开发游戏,Pygame游戏开发基础,字体、图形图像和多媒体,Sprite和碰撞检测,使用AI技术,当Python遇到Cocos2d,Cocos2d进阶,Cocos2d高级应用,使用PyOpenGL开发3D游戏,使用Panda3D开发3D游戏,综合实战—AI人机对战版五子棋游戏(Pygame实现),综合实战—水果连连看游戏(Cocos2d实现)。本书简洁而不失技术深度,内容丰富全面。以极简的文字介绍了复杂的案例,是学习Python游戏开发的实用教程。
《《Python 游戏开发从入门到精通》》适合已经了解Python语言基础语法、希望进一步提高自己Python开发水平的读者阅读,还可以作为大中专院校相关专业和培训学校师生的学习用书。
前言
第1章 使用Python内置函数开发游戏1
1.1 猜数游戏1
1.1.1 使用条件语句1
1.1.2 使用for循环语句2
1.1.3 具体实现3
1.2 龙的世界5
1.2.1 使用while循环语句5
1.2.2 使用函数6
1.2.3 实现“龙的世界”6
1.3 Hangman游戏8
1.3.1 项目介绍8
1.3.2 具体实现9
1.4 破解恺撒密码14
1.4.1 实例介绍14
1.4.2 具体实现14
1.5 Reversi黑白棋游戏16
1.5.1 笛卡儿坐标系16
1.5.2 实例介绍17
1.5.3 具体实现17
第2章 Pygame游戏开发基础23
2.1 安装Pygame23
2.2 Pygame开发基础24
2.2.1 Pygame框架中的模块24
2.2.2 开发第一个Pygame程序25
2.3 事件处理27
2.3.1 事件检索27
2.3.2 处理鼠标事件28
2.3.3 处理键盘事件30
2.3.4 事件过滤32
2.3.5 产生事件32
2.4 移动的小蘑菇33
第3章 字体、图形图像和多媒体35
3.1 显示模式35
3.1.1 设置显示模式35
3.1.2 在全屏显示模式和非全屏显示
模式之间进行转换36
3.2 设置字体并显示文本内容36
3.2.1 设置字体36
3.2.2 使用属性Rect设置文本位置38
3.2.3 在游戏窗口中显示闪烁的文字39
3.3 设置像素和颜色40
3.3.1 颜色介绍40
3.3.2 设置透明度42
3.3.3 实现一个三原色颜色滑动条效果43
3.4 绘制图像44
3.4.1 使用Surface绘制对象45
3.4.2 使用pygame.draw绘图47
3.5 使用动画49
3.5.1 Pygame动画49
3.5.2 帧速率51
3.5.3 多彩小球动画51
3.6 为游戏添加音效53
3.6.1 Pygame声音53
3.6.2 播放不同的声音特效54
第4章 Sprite和碰撞检测57
4.1 Sprite的概念57
4.2 Pygame中的Sprite58
4.2.1 pygame.sprite模块中的内置方法和变量58
4.2.2 创建第一个精灵59
4.2.3 创建一个“古灯笼”精灵60
4.2.4 创建精灵组:3辆赛车60
4.2.5 创建移动的精灵组:疯狂赛车游戏63
4.3 碰撞检测65
4.3.1 游戏中的碰撞检测66
4.3.2 Pygame中的碰撞检测69
4.4 3个游戏项目75
4.4.1 简易跑酷游戏75
4.4.2 吃苹果游戏79
4.4.3 Pygame官网的坦克大战游戏82
第5章 使用AI技术94
5.1 游戏中常用的AI算法94
5.1.1 有限状态机算法94
5.1.2 蒙特卡洛树搜索算法95
5.1.3 A Star寻路算法96
5.1.4 电势矩阵寻路算法97
5.1.5 Dijkstra单源最短路径搜索算法97
5.2 贪吃蛇游戏97
5.2.1 普通版的贪吃蛇游戏98
5.2.2 AI版的贪吃蛇游戏103
第6章 当Python遇到Cocos2d111
6.1 Cocos2d介绍111
6.1.1 Cocos2d的家族成员111
6.1.2 Cocos2d-Python112
6.2 Cocos2d-Python的基本应用113
6.2.1 锚点和坐标系113
6.2.2 使用Director115
6.2.3 创建层116
6.2.4 使用精灵118
6.2.5 设置背景音乐和音效122
6.3 使用事件123
6.3.1 使用键盘事件123
6.3.2 使用鼠标事件125
6.4 使用菜单128
6.4.1 Cocos2d中的菜单128
6.4.2 使用文本菜单129
6.4.3 使用图像菜单133
6.5 Cocos2d-Python版本的贪吃蛇游戏134
6.5.1 设置背景音效135
6.5.2 实现游戏界面135
第7章 Cocos2d进阶140
7.1 动作、转换和效果140
7.1.1 动作140
7.1.2 基本动作143
7.1.3 特殊动作149
7.1.4 组合和修改动作151
7.1.5 Effects155
7.1.6 创建自己的动作162
7.2 场景切换164
7.2.1 使用导演实现场景切换164
7.2.2 使用过渡动画实现场景切换166
第8章 Cocos2d高级应用174
8.1 瓦片地图174
8.1.1 两种格式174
8.1.2 cell单元格和tile图块属性181
8.1.3 地图滚动182
8.1.4 地图查询186
8.2 地图碰撞器186
8.2.1 地图碰撞器介绍187
8.2.2 检测碰撞的方法188
8.2.3 3种地图碰撞器188
8.2.4 使用RectMapCollider碰撞器188
8.2.5 使用TmxObjectMapCollider碰撞器191
8.3 CocosNode193
8.3.1 CocosNode的主要功能194
8.3.2 常用的CocosNode子类202
8.4 碰撞处理206
8.4.1 碰撞模型206
8.4.2 基于地图的碰撞处理207
8.4.3 基于碰撞管理器的碰撞处理210
第9章 使用PyOpenGL开发3D游戏216
9.1 PyOpenGL基础知识介绍216
9.2 OpenGL的内置函数217
9.2.1 创建第一个PyOpenGL程序217
9.2.2 OpenGL API的常用内置函数218
9.3 绘制基本的图形220
9.3.1 绘制一条直线220
9.3.2 绘制点线面图形221
9.3.3 绘制平滑阴影三角形223
9.3.4 绘制平方曲线226
9.4 使用GLFW227
9.4.1 第一个GLFW程序227
9.4.2 模拟钟表指针的转动228
9.4.3 模拟钟表指针转动的三角形230
9.4.4 使用键盘按键移动三角形232
9.5 开发一个3D游戏234
9.5.1 渲染游戏场景和纹理234
9.5.2 监听用户的鼠标和按键动作236
第10章 使用Panda3D开发3D游戏239
10.1 Panda3D基础239
10.1.1 Panda3D的优点239
10.1.2 安装Panda3D240
10.1.3 创建第一个Panda3D程序243
10.2 Panda3D的内置成员244
10.2.1 加载游戏场景244
10.2.2 任务处理:移动3D摄像机248
10.2.3 使用Actor添加动画模型254
10.2.4 使用间隔和序列257
10.3 开发常见的3D游戏程序263
10.3.1 迷宫中的小球游戏263
10.3.2 拳击赛游戏267
第11章 综合实战—AI人机对战版五子棋游戏(Pygame实现)269
11.1 游戏介绍269
11.2 架构分析269
11.2.1 五子棋的基本棋型270
11.2.2 功能模块272
11.3 具体编码273
11.3.1 设置基础参数273
11.3.2 绘制棋盘273
11.3.3 实现AI功能275
11.3.4 实现按钮功能283
11.3.5 重写功能285
第12章 综合实战—水果连连看游戏(Cocos2d实现)289
12.1 游戏介绍289
12.2 架构分析289
12.2.1 分析游戏规则290
12.2.2 功能模块290
12.3 具体编码291
12.3.1 设计HUD291
12.3.2 监听鼠标的移动293
12.3.3 显示视图294
12.3.4 游戏菜单295
12.4 实现游戏逻辑296
12.4.1 设置系统参数296
12.4.2 视图初始化296
12.4.3 开始游戏的下一关297
12.4.4 倒计时297
12.4.5 设置随机显示的水果297
12.4.6 碰撞检测处理299
12.4.7 进度条303
12.4.8 主程序303