Python和Pygame游戏开发 pdf

Python和Pygame游戏开发

目录

第1章 安装Python和Pygame 1
1.1 预备知识 1
1.2 下载和安装Python 1
1.3 Windows下的安装说明 1
1.4 Mac OS X上的安装说明 2
1.5 Ubuntu和Linux上的安装
说明 2
1.6 启动Python 2
1.7 安装Pygame 3
1.8 如何阅读本书 4
1.9 特色的程序 4
1.10 下载图形文件和声音文件 4
1.11 行号和空格 4
1.12 图书中的文本折行 5
1.13 在线检查代码 5
1.14 配套网站上的更多信息 6

第2章 Pygame基础知识 7
2.1 GUI vs. CLI 7
2.2 使用Pygame的Hello World程序
源代码 7
2.3 建立一个Pygame程序 8
2.4 游戏循环和游戏状态 10
2.5 pygame.event.Event对象 11
2.6 QUIT事件和pygame.quit()
函数 12
2.7 像素坐标 13
2.8 关于函数、方法、构造函数和
模块中的函数(及其差别)的
一些提示 13
2.9 Surface对象和窗口 14
2.10 颜色 15
2.11 颜色的透明度 16
2.12 pygame.Color对象 17
2.13 Rect对象 17
2.14 基本的绘制函数 19
2.15 pygame.PixelArray对象 22
2.16 pygame.display.update()函数 22
2.17 动画 22
2.18 帧速率和pygame.time.Clock
对象 25
2.19 用pygame.image.load()和blit()
绘制图像 26
2.20 字体 26
2.21 抗锯齿 28
2.22 播放声音 28
2.23 本章小结 29

第3章 Memory Puzzle游戏 31
3.1 如何玩Memory Puzzle游戏 31
3.2 嵌套的for循环 31
3.3 Memory Puzzle的源代码 33
3.4 声明和导入 40
3.5 幻数很糟糕 40
3.6 使用assert语句全面检查 41
3.7 判断一个数字是偶数还是奇数 42
3.8 较早崩溃和经常崩溃 42
3.9 让源代码更好看一些 43
3.10 使用常量变量而不是字符串 44
3.11 确保有足够的图标 44
3.12 元组vs.列表,不可变vs.可变 45
3.13 单项元组需要一个结尾的逗号 46
3.14 在列表和元组之间转换 46
3.15 global语句以及为什么全局变量
是罪恶的 47
3.16 数据结构和2D列表 48
3.17 “开始游戏”动画 49
3.18 游戏循环 50
3.19 事件处理循环 50
3.20 检查鼠标光标在哪一个方块
之上 51
3.21 处理次点击的方块 52
3.22 处理不一致的一对图标 53
3.23 处理玩家获胜 53
3.24 将游戏状态绘制到屏幕 54
3.25 创建“揭开的方块”数据结构 55
3.26 创建游戏板数据结构:第1步—获取所有可能的图标 55
3.27 第2步—打乱并截取所有图标
的列表 56
3.28 第3步—将图标放置到游戏
板上 56
3.29 将一个列表分割为列表的
列表 57
3.30 不同的坐标系 58
3.31 从像素坐标转换为方块坐标 59
3.32 绘制图标以及语法糖 59
3.33 获取游戏板控件的图标的形状和
颜色的语法糖 61
3.34 绘制盖住的方块 61
3.35 处理揭开和覆盖动画 62
3.36 绘制整个游戏板 63
3.37 绘制高亮边框 63
3.38 “开始游戏”动画 64
3.39 揭开和盖住成组的方块 64
3.40 “游戏获胜”动画 65
3.41 判断玩家是否已经获胜 65
3.42 为何要那么麻烦地使用main()
函数 66
3.43 为什么要为可读性操心 67
3.44 本章小结 71

第4章 Slide Puzzle 72
4.1 如何玩Slide Puzzle 72
4.2 Slide Puzzle的源代码 72
4.3 款游戏和款相同 80
4.4 设置按钮 81
4.5 使用愚笨的代码变聪明 83
4.6 主游戏循环 83
4.7 点击按钮 84
4.8 用鼠标滑动贴片 85
4.9 用键盘滑动贴片 85
4.10 使用in操作符实现“等于其中
之一”的技巧 86
4.11 WASD和箭头按键 86
4.12 实际执行贴片滑动 87
4.13 IDLE和终止Pygame程序 87
4.14 检查特定的事件并且将事件添加
到Pygame的事件队列 88
4.15 创建游戏板数据结构 89
4.16 不记录空白的位置 89
4.17 通过更新游戏板数据结构来
移动 90
4.18 何时不使用断言 90
4.19 获取一次并不是那么随机的
移动 91
4.20 将贴片坐标转换为像素坐标 92
4.21 将像素坐标转换为游戏板坐标 92
4.22 绘制一个贴片 93
4.23 让文本显示在屏幕上 93
4.24 绘制游戏板 94
4.25 绘制游戏板的边框 94
4.26 绘制按钮 95
4.27 实现贴片滑动动画 95
4.28 Surface的copy()方法 96
4.29 创建新的谜题 98
4.30 实现游戏板重置动画 99
4.31 时间vs.内存的权衡 100
4.32 没人在乎几个字节 101
4.33 没人在乎几百万个纳秒 101
4.34 本章小结 101

第5章 Simulate 102
5.1 如何玩Simulate游戏 102
5.2 Simulate的源代码 102
5.3 常用初始内容 108
5.4 设置按钮 109
5.5 main()函数 110
5.6 程序中用到的一些局部变量 110
5.7 绘制游戏板并处理输入 111
5.8 检查鼠标点击 112
5.9 检查键盘按下 112
5.10 游戏循环的两种状态 113
5.11 搞清楚玩家是否按下了正确的
按钮 113
5.12 新纪元时间 115
5.13 将游戏板绘制到屏幕 116
5.14 相同的旧的terminate()函数 116
5.15 复用常量变量 117
5.16 实现按钮闪烁动画 117
5.17 绘制按钮 120
5.18 实现背景颜色改变的动画 120
5.19 游戏结束动画 121
5.20 将像素坐标转换为按钮 122
5.21 显式比隐式好 123

第6章 Wormy 125
6.1 Wormy游戏的玩法 125
6.2 Wormy的源代码 125
6.3 栅格 131
6.4 设置代码 131
6.5 main()函数 132
6.6 单独的runGame()函数 133
6.7 事件处理循环 134
6.8 碰撞检测 134
6.9 检测和苹果的碰撞 135
6.10 移动虫子 136
6.11 insert()列表方法 136
6.12 绘制屏幕 137
6.13 在屏幕上绘制“Press a key”
文本 137
6.14 checkForKeyPress()函数 137
6.15 初始屏幕 138
6.16 旋转初始屏幕文本 139
6.17 旋转并不 140
6.18 决定苹果出现在哪里 141
6.19 游戏结束屏幕 141
6.20 绘制函数 142
6.21 不要复用变量名 144

第7章 Tetromino 146
7.1 一些Tetromino术语 146
7.2 Tetromino的源代码 147
7.3 常用设置代码 159
7.4 设置按下键的定时常量 159
7.5 更多的设置代码 160
7.6 设置砖块模式 161
7.7 将“一行代码”分隔到多行 164
7.8 main()函数 165
7.9 开始新的游戏 166
7.10 游戏循环 167
7.11 事件处理循环 167
7.12 暂停游戏 167
7.13 使用移动变量来处理用户输入 168
7.14 检查移动或旋转是否有效 168
7.15 找到底部 171
7.16 通过按下按键来移动 172
7.17 让砖块“自然”落下 174
7.18 将所有内容绘制到屏幕上 175
7.19 制作文本的快捷函数
makeTextObjs() 176
7.20 相同的旧的terminate()函数 176
7.21 使用checkForKeyPress()函数等
待按键事件 176
7.22 通用文本屏幕函数
showTextScreen() 177
7.23 checkForQuit()函数 178
7.24 calculateLevelAndFallFreq()
函数 178
7.25 用函数getNewPiece()产生新的
砖块 180
7.26 给游戏板数据结构添加砖块 181
7.27 创建一个新的游戏板数据
结构 181
7.28 isOnBoard()和isValidPosition()
函数 182
7.29 检查、删除和填满一行 184
7.30 将游戏板坐标转换为像素坐标 186
7.31 在游戏板上或屏幕上的其他位置
绘制方块 187
7.32 将所有内容绘制到屏幕上 187
7.33 绘制得分和关卡文本 188
7.34 在游戏板上或屏幕的其他位置
绘制一个砖块 188
7.35 绘制“Next”砖块 189
7.36 本章小结 189

第8章 Squirrel Eat Squirrel 191
8.1 如何玩Squirrel Eat Squirrel 191
8.2 Squirrel Eat Squirrel的设计 191
8.3 Squirrel Eat Squirrel的源代码 192
8.4 常用设置代码 202
8.5 描述数据结构 203
8.6 main()函数 204
8.7 pygame.transform.flip()函数 205
8.8 更为详细的游戏状态 205
8.9 常用的文本创建代码 206
8.10 相机 206
8.11 “活动区域” 208
8.12 记录游戏世界中的物体的位置 208
8.13 从一些草开始 209
8.14 游戏循环 209
8.15 检查去掉保护状态 209
8.16 移动敌人松鼠 210
8.17 删除较远的草对象和松鼠
对象 211
8.18 当从列表中删除项的时候,
反向遍历列表 211
8.19 添加新的草对象和松鼠对象 213
8.20 相机延迟以及移动相机视图 213
8.21 绘制背景、草、松鼠和生命值
指示 214
8.22 事件处理循环 216
8.23 移动玩家并考虑跳动 218
8.24 碰撞检测:吃或被吃 219
8.25 游戏结束屏幕 221
8.26 获胜 221
8.27 绘制图形化的生命值指标 221
8.28 相同的旧的terminate()函数 222
8.29 正弦函数 222
8.30 对Python 2的向后兼容 225
8.31 getRandomVelocity()函数 226
8.32 找到一个地方添加新的松鼠
和草 226
8.33 创建敌人松鼠数据结构 228
8.34 翻转松鼠图像 228
8.35 创建草数据结构 229
8.36 检查是否在活动区域之外 229
8.37 本章小结 230

第9章 Star Pusher 231
9.1 如何玩Star Pusher 231
9.2 Star Pusher的源代码 232
9.3 初始化设置 245
9.4 Star Pusher中的数据结构 259
9.5 读取和写入文本文件 260
9.6 递归函数 268
9.7 栈溢出 269
9.8 使用基本条件防止栈溢出 271
9.9 漫水填充算法 271
9.10 绘制地图 273
9.11 检查关卡是否完成 275
9.12 本章小结 276

第10章 4款其他游戏 277
10.1 Flippy,Othello的翻版 277
10.2 Flippy的源代码 279
10.3 Ink Spill,Flood It游戏的
翻版 291
10.4 Ink Spill的源代码 292
10.5 Four-In-A-Row,Connect Four
的翻版 303
10.6 Four-In-A-Row的源代码 304
10.7 Gemgem,Bejeweled的翻版 312
10.8 Gemgem的源代码 313
10.9 本章小结 326

术语表 328

下载地址:https://pan.baidu.com/s/17i0-_USHUjEgRaY7DHe9yw

关注微信公众号获取提取码:

  输入:pypg   获取提取码

标签: Unity 3D网络游戏实战(全)Unity 3D网络游戏实战(全)pdf

原文地址:https://www.cnblogs.com/kuoAT/p/9540776.html

时间: 2024-10-07 08:28:21

Python和Pygame游戏开发 pdf的相关文章

【python游戏编程之旅】第八篇---pygame游戏开发常用数据结构

本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 上一个博客我们一起学习了pygame中冲突检测技术:http://www.cnblogs.com/msxh/p/5027688.html 这次我们来一起学习在pygame游戏里面常用的一些数据结构: 数据,列表,元组,队列,栈. 一.数组与列表 数组可以理解为简化的列表.像我们之前使用的pygame.sprite.Group这样的精灵组,也是一个列表.列表的元素是可变的,它具有添加.删除.搜索.排序等多种

史上最全最完整的IOS 游戏开发 PDF电子书定制下载

<iOS 5游戏开发>作者:(新西兰)James·Sugrue著 页数:191 出版社:北京市:人民邮电出版社 出版日期:2012.08 简介:<iOS5游戏开发>是一本iOS5游戏开发的基础入门书.全书使用通俗易懂的简单实例,带领读者经历构建经典动作游戏的整个周期.读者在本书的阅读过程中,将经历从开发概念.规划设计一直到编写实际代码的全过过程.本书的每一章,都将演示游戏创建过程中的一个逻辑步骤,读者将在其中学习如何创建Sprite,用触摸屏.重力感应器和屏幕游戏棒控制玩家角色等-

HTML5 Canvas核心技术:图形、动画与游戏开发 PDF扫描版?

HTML5 Canvas核心技术:图形.动画与游戏开发 内容简介: <HTML5 Canvas核心技术:图形.动画与游戏开发>中,畅销书作家David Geary(基瑞)先生以实用的范例程序直接切入这套API,全面讲解其功能,以求让读者实现出内容丰富且界面一致的网络应用程序,并将开发好的程序部署在多种设备及操作系统之上. 教程地址:HTML5 Canvas核心技术:图形.动画与游戏开发 PDF扫描版? HTML5 Canvas核心技术:图形.动画与游戏开发 目录: 前言 第1章 基础知识 1.

cocos2d-3.2+python+NDK搭建游戏开发环境

下载内容:NDK(r9d,备注:r10d有缺陷似乎).ant.Cocos2d-x-3.2.python.cdt需要在Eclipse中配置 其它必备工具Eclispe+ADT+jdk不多说了 ant地址:http://mirrors.hust.edu.cn/apache//ant/binaries/apache-ant-1.9.4-bin.zipcdt地址:http://mirror.hust.edu.cn/eclipse//tools/cdt/releases/juno/sr2/cdt-mast

HTML5游戏开发pdf

下载地址:网盘下载 本书共10 章,通过10 个具体的游戏示例详细介绍HTML5 的用法.每章都先列出相关的技术特性并给出了应用的描述,然后讨论了实现这个应用的关键需求,接着强调了满足这些需求的HTML5.CSS 和JavaScript 特性或者通用编程方法,最后详细介绍了代码的实现.另外,每一章都对如何把这些游戏变成你自己的应用给出了建议,并指出如何测试应用并将其上传到网站上.下载地址:网盘下载 原文地址:https://www.cnblogs.com/longgg/p/8464950.htm

Python库之游戏开发

原文地址:https://www.cnblogs.com/li-zhi-qiang/p/9291170.html

【1】【MOOC】Python游戏开发入门-北京理工大学【第二部分-游戏开发之框架】

学习地址链接:http://www.icourse163.org/course/0809BIT021E-1001873001?utm_campaign=share&utm_medium=androidShare&utm_source=qq pygame安装方法:http://www.cnblogs.com/GraceSkyer/p/8004004.html 1.Pygame 简介与安装 Python优秀的第三方库SDL:各个操作系统上提供的一种能直接与计算机外设打交道的一个第三方库在这个库

电子书 flaskweb开发:基于Python的Web应用开发实战.pdf

作为PythonWeb开发的微框架,Flask独树一帜.它不会强迫开发者遵循预置的开发规范,为开发者提供了自由度和创意空间. <图灵程序设计丛书·Flask Web开发:基于Python的Web应用开发实战>作者拥有25年软件开发经验,而<图灵程序设计丛书·Flask Web开发:基于Python的Web应用开发实战>则采用讲解与实例相结合的方式,不仅介绍了Flask安装.使用等基础知识,而且还带领读者一步一步地开发了社交博客Flasky.即使从未接触Flask,你也能轻松学会构建

Coco2d-x android win7 Python 搭建游戏开发环境

1:我用电脑配置 win7 3 核 内存8G 台式机,一直想研究Coco2d 游戏开发,所以经过一周的需找,终于把环境搭建好了 2:我用的版本是该版本,至于搭建android开发环境省略了, 3: 2.2>安装ndk,为了使用c++/c进行android开发 下载android-ndk-r8e,然后在eclipse或adt bundle中配置ndk路径. 4: 5:采用VS 编译环境 我之前用的VS2010 感觉用着不爽,所以改成现在的VS 2012 , 6:一般用python建立项目: 用py