新書推薦:
《
井邑无衣冠 : 地方视野下的唐代精英与社会
》
售價:NT$
434.0
《
星地融合移动通信系统与关键技术从5G NTN到6G的卫星互联网发展
》
售價:NT$
968.0
《
妈妈,你好吗?(一封写给妈妈的“控诉”信,日本绘本奖作品)
》
售價:NT$
194.0
《
保守主义:为传统而战
》
售價:NT$
704.0
《
不同境遇的36岁:无尽与有限+人生半熟
》
售價:NT$
510.0
《
小时光 油画棒慢绘零基础教程
》
售價:NT$
403.0
《
可控性混乱
》
售價:NT$
301.0
《
篡魏:司马懿和他的夺权同盟
》
售價:NT$
296.0
|
目錄:
|
第1篇 基础篇001
第1章 初识pygame 002
1.1 了解Python 002
1.1.1 Python概述 002
1.1.2 Python能做什么 003
1.2 pygame简介 003
1.2.1 pygame的由来 003
1.2.2 pygame能做什么 003
1.2.3 pygame常用子模块介绍 004
1.3 安装Python 005
1.3.1 Python开发环境概述 005
1.3.2 下载Python 005
1.3.3 安装Python 007
1.3.4 测试Python是否安装成功 009
1.3.5 Python安装失败的解决方法 010
1.4 安装pygame 012
1.4.1 使用pip install命令安装 013
1.4.2 使用Wheel文件离线安装 014
1.4.3 测试pygame是否安装成功 017
1.5 PyCharm开发工具的下载与安装 019
1.5.1 下载PyCharm 019
1.5.2 安装PyCharm 020
1.5.3 启动并配置PyCharm 022
1.6 第一个pygame程序 026
1.7 实战练习 026
第2章 pygame程序开发流程 028
2.1 pygame程序开发流程 028
2.1.1 导入pygame模块 028
2.1.2 初始化pygame 029
2.1.3 创建pygame窗口 030
2.1.4 窗口图像渲染——Surface对象 033
2.1.5 设置游戏窗口状态 035
2.2 pygame最小开发框架 036
2.3 综合案例——绘制拼图游戏界面 038
2.4 实战练习 039
第3章 pygame游戏开发基础 040
3.1 像素和pygame.Color对象 040
3.2 pygame中的透明度 043
3.2.1 像素透明度 043
3.2.2 颜色值透明度 044
3.2.3 图像透明度 046
3.3 窗口坐标系与pygame.Rect对象 046
3.3.1 窗口坐标系 046
3.3.2 pygame.Rect对象 046
3.4 控制帧速率 047
3.4.1 非精确控制——clock().tick() 048
3.4.2 精确控制——clock().tick_busy_loop() 048
3.5 向量在pygame中的使用 048
3.5.1 向量的介绍 048
3.5.2 向量的使用 049
3.6 三角函数介绍及其使用 050
3.7 pygame.PixelArray对象 052
3.7.1 PixelArray对象概述 052
3.7.2 PixelArray对象常见操作 053
3.7.3 图像透明化处理 054
3.8 pygame的错误处理 055
3.9 综合案例——绘制动态太极图 056
3.10 实战练习 058
第4章 字体和文字 059
4.1 加载和初始化字体模块 059
4.1.1 初始化与还原字体模块 060
4.1.2 获取可用字体 060
4.1.3 获取pygame模块提供的默认字体文件 061
4.2 Font字体类对象 061
4.2.1 创建Font类对象 062
4.2.2 渲染文本 062
4.2.3 设置及获取文本渲染模式 065
4.2.4 获取文本渲染参数 067
4.3 综合案例——绘制“Python之禅” 068
4.4 实战练习 072
第5章 事件侦听 073
5.1 理解事件 073
5.2 事件检索 074
5.3 处理键盘事件 077
5.4 处理鼠标事件 079
5.5 设备轮询 080
5.5.1 轮询键盘 081
5.5.2 轮询鼠标 082
5.6 事件过滤 083
5.7 自定义事件 084
5.8 综合案例——挡板接球游戏 084
5.9 实战练习 087
第6章 图形绘制 088
6.1 pygame.draw模块概述 088
6.2 使用pygame.draw模块绘制基本图形 088
6.2.1 绘制线段 088
6.2.2 绘制矩形 090
6.2.3 绘制多边形 091
6.2.4 绘制圆 093
6.2.5 绘制椭圆 096
6.2.6 绘制弧线 097
6.3 综合案例——会动的乌龟 099
6.4 实战练习 101
第7章 位图图形 102
7.1 位图基础 102
7.2 Surface对象 102
7.2.1 创建Surface对象 103
7.2.2 拷贝Surface对象 103
7.2.3 修改Surface对象 104
7.2.4 剪裁Surface区域 105
7.2.5 移动Surface对象 105
7.2.6 子表面Subsurface 107
7.2.7 获取Surface父对象 108
7.2.8 像素访问与设置 109
7.2.9 尺寸大小与矩形区域管理 110
7.3 Rect矩形对象 111
7.3.1 创建Rect对象 112
7.3.2 拷贝Rect对象 114
7.3.3 移动Rect对象 114
7.3.4 缩放Rect对象 115
7.3.5 Rect对象交集运算 115
7.3.6 判断一个点是否在矩形内 116
7.3.7 两个矩形间的重叠检测 116
7.4 综合案例——跳跃的小球 120
7.5 实战练习 125
第8章 精灵的使用 126
8.1 精灵基础 126
8.1.1 精灵简介 126
8.1.2 精灵的创建 126
8.2 用精灵实现动画 128
8.2.1 定制精灵序列图 128
8.2.2 加载精灵序列图 129
8.2.3 绘制及更新帧图 130
8.3 精灵组 134
8.4 精灵冲突检测 134
8.4.1 两个精灵之间的矩形冲突检测 135
8.4.2 两个精灵之间的圆冲突检测 135
8.4.3 两个精灵之间的像素遮罩冲突检测 136
8.4.4 精灵和精灵组之间的矩形冲突检测 137
8.4.5 精灵组之间的矩形冲突检测 138
8.5 综合案例——小超人吃苹果 138
8.6 实战练习 141
第9章 音频处理 142
9.1 设备的初始化 142
9.2 声音的控制 143
9.2.1 加载声音文件 143
9.2.2 控制声音流 143
9.3 管理声音 150
9.3.1 Sound对象 150
9.3.2 Channel对象 153
9.4 综合案例——音乐播放器 157
9.5 实战练习 160
第2篇 案例篇163
第10章 Flappy Bird (pygame 键盘事件监听实现) 164
10.1 案例效果预览 164
10.2 案例准备 164
10.3 业务流程 165
10.4 实现过程 165
10.4.1 文件夹组织结构 165
10.4.2 搭建主框架 165
10.4.3 创建小鸟类 166
10.4.4 创建管道类 168
10.4.5 计算得分 170
10.4.6 碰撞检测 172
第11章 玛丽冒险 (pygame itertools random实现) 174
11.1 案例效果预览 174
11.2 案例准备 175
11.3 业务流程 176
11.4 实现过程 176
11.4.1 文件夹组织结构 176
11.4.2 游戏窗体的实现 176
11.4.3 地图的加载 177
11.4.4 玛丽的跳跃功能 179
11.4.5 随机出现的障碍 181
11.4.6 背景音乐的播放与停止 183
11.4.7 碰撞和积分的实现 184
第12章 推箱子游戏(pygame copy 按键事件监听 栈操作实现) 187
12.1 需求分析 187
12.2 案例准备 188
12.3 业务流程 188
12.4 实现过程 189
12.4.1 文件夹组织结构 189
12.4.2 搭建主框架 189
12.4.3 绘制游戏地图 191
12.4.4 用键盘控制角色移动 196
12.4.5 判断游戏是否通关 200
12.4.6 记录步数 201
12.4.7 撤销角色已移动功能 202
12.4.8 重玩此关的实现 203
12.4.9 游戏进入下一关 204
第13章 飞机大战游戏(pygame sys random codecs实现) 206
13.1 案例效果预览 206
13.2 案例准备 206
13.3 业务流程 207
13.4 实现过程 208
13.4.1 文件夹组织结构 208
13.4.2 主窗体的实现 208
13.4.3 创建游戏精灵 209
13.4.4 游戏核心逻辑 211
13.4.5 游戏排行榜 214
第14章 智力拼图(pygame random csv文件读写技术实现) 216
14.1 案例效果预览 216
14.2 案例准备 218
14.3 业务流程 218
14.4 实现过程 218
14.4.1 文件夹组织结构 218
14.4.2 搭建主框架 219
14.4.3 绘制游戏主窗体 221
14.4.4 移动游戏空白方格拼图块 226
14.4.5 统计空白方格拼图块移动步数 229
14.4.6 判断拼图是否成功 230
14.4.7 使用csv文件存取游戏数据 233
14.4.8 绘制游戏结束窗体 233
第15章 画图工具(pygame draw绘图对象实现) 238
15.1 案例预览效果 238
15.2 案例准备 238
15.3 业务流程 239
15.4 实现过程 240
15.4.1 文件夹组织结构 240
15.4.2 菜单类设计 240
15.4.3 画笔类设计 242
15.4.4 窗口绘制类设计 243
15.4.5 画图工具主类设计 245
第3篇 项目篇247
第16章 缤纷水果消消乐(pygame random time csv实现) 248
16.1 需求分析 248
16.2 系统设计 248
16.2.1 系统功能结构 248
16.2.2 系统业务流程 248
16.2.3 系统预览 249
16.3 系统开发 251
16.3.1 开发工具准备 251
16.3.2 文件夹组织结构 252
16.4 消消乐游戏的实现 252
16.4.1 搭建游戏主框架 252
16.4.2 创建精灵类 254
16.4.3 游戏首屏页面的实现 256
16.4.4 游戏主页面的实现 258
16.4.5 可消除水果的检测与标记清除 261
16.4.6 水果的掉落 266
16.4.7 点击相邻水果时的交换 268
16.4.8 游戏积分排行榜页面的实现 271
16.4.9 “死图”的判断 273
16.4.10 游戏倒计时的实现 276
第17章 车牌自动识别计费系统(pygame pandas matplotlib baidu- aip Opencv-Python实现) 280
17.1 需求分析 280
17.2 系统设计 280
17.2.1 系统功能结构 280
17.2.2 系统业务流程 281
17.2.3 系统预览 282
17.3 系统开发 283
17.3.1 开发工具准备 283
17.3.2 文件夹组织结构 283
17.4 车牌自动识别计费系统的实现 283
17.4.1 实现系统窗体 283
17.4.2 显示摄像头画面 285
17.4.3 创建保存数据文件 286
17.4.4 识别车牌 287
17.4.5 车辆信息的保存与读取 290
17.4.6 收入统计的实现 292
|
內容試閱:
|
随着人工智能、机器学习与数据分析的持续升温,Python越来越受到程序开发人员的青睐。目前,Python可以说是最热门的编程语言之一,它的应用范围非常广泛,除了人工智能、机器学习、数据分析等领域,它在Web开发、游戏开发等领域的应用也非常受欢迎。特别是在游戏行业大受欢迎的今天,无论是对编程感兴趣的爱好者、即将毕业的大学生,还是正在从事游戏开发的人员,都对游戏行业的前景非常看好,但Python游戏开发类图书却十分稀缺,让很多有志于从事Python游戏开发的用户望而却步,因此,我们特意编写了本书。
本书从初学者的角度出发,为想要学习Python游戏开发的编程爱好者、初级和中级游戏开发人员和高等院校师生精心策划,所讲内容从技术应用的角度出发,结合实际应用进行讲解。本书侧重Python游戏开发的编程基础与实践,为保证读者学以致用,在实践方面循序渐进地进行3个层次的篇章介绍:基础篇、案例篇和项目篇。
本 书 内 容
全书共分为17章,主要通过“基础篇(9章) 案例篇(6章) 项目篇(2章)”3大维度一体化的方式讲解,具体的学习结构如下图所示:
本书特色
1.突出重点、学以致用
书中每个知识点都结合了简单易懂的实例代码以及非常详细的注释信息,读者能够快速理解所学知识,提升学习效率,缩短学习路径。
2.提升思维、综合运用
本书会以知识点综合运用的方式,带领读者制作各种趣味性较强的游戏案例,让读者不断提升编写Python游戏程序的思维,还可以快速提升对知识点的综合运用能力,让读者能够回顾以往所学的知识点,并结合新的知识点进行综合应用。
3.综合技术、实际项目
本书在项目篇中提供了两个贴近实际应用的项目,力求通过实际应用使读者更容易地掌握pygame。两个项目都是根据实际开发经验总结而来,包含了在实际开发中所遇到的各种问题。项目结构清晰、扩展性强,读者可根据个人需求进行扩展开发。
4.精彩栏目、贴心提示
本书根据实际学习的需要,设置了“注意”“说明”“技巧”等许多贴心的小栏目,辅助读者轻松理解所学知识,规避编程陷阱。
致读者
本书由明日科技的Python开发团队策划并组织编写,主要编写人员有王小科、李磊、高春艳、张鑫、刘书娟、赵宁、周佳星、王国辉、赛奎春、葛忠月、宋万勇、杨丽、刘媛媛、依莹莹等。在编写本书的过程中,我们本着科学、严谨的态度,力求精益求精,但疏漏之处在所难免,敬请广大读者批评斧正。
感谢您阅读本书,希望本书能成为您编程路上的领航者。
祝您读书快乐!
编著者
|
|