×
暂无评论
图文详情
  • ISBN:9787115407351
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:330
  • 出版时间:2021-12-01
  • 条形码:9787115407351 ; 978-7-115-40735-1

本书特色

适读人群 :游戏开发人员、Python编程爱好者本书作者在国外发布英文版后,受到普遍欢迎和很好的评价。本书通过详细分析11款示例游戏的源代码,介绍Pygame库的用法。寓教于乐,轻松有趣。本书所涉及的11款示例游戏,是诸如Nibbles、Tetris、Simon、Bejeweled、Othello、Connect Four、Flood It等游戏的翻版。本书的Web站点http: inventwithpython.com pygame,提供源代码下载等更多资源。

内容简介

Python语言和Pygame都是开发图形化的计算机游戏的得力工具。Pygame使得开发2D图形程序变得很容易,而且它可以免费下载和安装使用。 本书是一本中级编程图书。本书教你如何用Python语言和Pygame库,来编写图形化的计算机游戏。本书共包括10章。本书首先从Python和Pygame基础知识开始,简短地介绍了Pygame库是如何工作的,以及它提供了哪些功能。然后,结合7款不同的游戏实例的开发过程,详细介绍了应用的技能和技巧。本书针对一些真实的游戏给出了完整的源代码,并且详细说明了这些代码如何工作,以便你能够理解真正的游戏是如何使用Pygame的。 本书适合有一定Python基础知识的读者阅读和学习,进而掌握基本的游戏开发知识和技能,对于Python初学者来说,本书也可以作为通过游戏学习Python开发的实践教程。

目录

目录

第 1章 安装Python和Pygame1
1.1 预备知识1
1.2 下载和安装Python1
1.3 Windows下的安装说明1
1.4 Mac OS X上的安装说明2
1.5 Ubuntu和Linux上的安装
说明2
1.6 启动Python2
1.7 安装Pygame3
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. CLI7
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 Puzzle72
4.1 如何玩Slide Puzzle72
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章 Simulate102
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章 Wormy125
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章 Tetromino146
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 Squirrel191
8.1 如何玩Squirrel Eat Squirrel191
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 Pusher231
9.1 如何玩Star Pusher231
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
展开全部

作者简介

Al Sweigart是加利福尼亚州旧金山的一名软件开 发者。他很喜欢骑自行车、当志愿者、泡咖啡吧以及制作有用的软件。《Making Games with Python & Pygame》是他编写的第 二本书。他的另一本书是《Invent Your Own Computer Games with Python》。他生于德克萨斯的休斯顿。他在德克萨斯大学Austin分校读完了计算机科学学位。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航