编辑推荐
学习一种编程语言,还有比开发游戏更好的方法吗?本书为读者提供了充分的实践和练习,并且关注Python编程中的高级话题,这些全部通过游戏示例和项目来介绍,而这已经证明是一种高效而有趣的学习方法。本书介绍了数据结构、文件处理、异常、面向对象编程、GUI编程、多媒体编程、命名空间和程序规划。本书将使读者掌握Python语言的深层知识。
本书具有以下特色:
1.以开发游戏为学习方法;
2.利用已经学到的知识,逐渐增加编程项目的挑战性,逐步构建牢固的基础知识;
3.通过每章最后的挑战练习,鼓励读者测试自己的技能并应用自己的知识;
4.Web站点(www.jharbour.com)包含了所有的源代码和其他资料。
内容简介
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,在游戏开发领域,Python也得到越来越广泛的应用,并由此受到重视。
本书教授用Python开发精彩游戏所需的最为重要的该你那。本书不只是介绍游戏编程概念的相关内容,还深入到复杂的主题。全书共14章,依次介绍了使用Pygame、文件I/O、用户输入、数学和图形编程、位图图形、精灵动画、冲突检测、数组、计时和声音、编程逻辑、三角函数、随机地形、角色扮演游戏等重要概念。每章通过一个示例游戏来展示这些知识和工具的实际应用。本书既可以帮助读者掌握相关概念来构建较为复杂的游戏,甚至进行较为复杂的Python编程。
本书内容浅显易懂,示例轻松活泼,适合Python初学者阅读,尤其适合想要掌握Python游戏编程的读者学习参考。
作者简介
Jonathan Harbour曾经作为副教授在UAT (Tempe, AZ)教授了5年游戏开发。他编写了20多本(包括改编)书,涉及到大多数主流的编程语言,如C 、C#、VB、Java和Python。他还熟悉Xbox、Xbox 360、Windows Phone、Android、Game Boy Advance 和Pocket PC等硬件。可以通过www.jharbour.com联系他。
目录
- 第1章 使用类的Python
- 1.1 了解Geometry程序
- 1.2 初识Python
- 1.2.1 Python工具
- 1.2.2 Python语言
- 1.3 Python中的对象
- 1.3.1 在面向对象之前是什么
- 1.3.2 接下来是什么
- 1.3.3 OOP:Python的方式
- 1.3.4 单继承
- 1.3.5 多继承
- 1.4 小结
- 第2章 初识Pygame:Pie游戏
- 2.1了解Pie游戏
- 2.2 使用Pygame
- 2.2.1 打印文本
- 2.2.2 循环
- 2.2.3 绘制圆
- 2.2.4 绘制矩形
- 2.2.5 绘制线条
- 2.2.6 绘制弧形
- 2.3 Pie游戏
- 2.4 小结
- 第3章 I/O、数据和字体:TRIVIA游戏
- 3.1了解Trivia游戏
- 3.2 Python数据类型
- 3.2.1关于打印的更多知识
- 3.2.2 获取用户输入
- 3.2.3 处理异常
- 3.2.4 Mad Lib游戏
- 3.3 文件输入/输出
- 3.3.1 操作文本
- 3.3.2 操作二进制文件
- 3.4 TRIVIA游戏
- 3.4.1 用Pygame打印文本
- 3.4.2 Trivia类
- 3.4.3 加载Trivia数据
- 3.4.4 显示问题和答案
- 3.4.5 响应用户输入
- 3.4.6 继续下一个问题
- 3.4.7 主代码
- 3.5 小结
- 第4章用户输入:Bomb Catcher游戏
- 4.1认识Bomb Catcher游戏
- 4.2 Pygame事件
- 4.2.1 实时事件循环
- 4.2.2 键盘事件
- 4.2.3 鼠标事件
- 4.3 设备轮询
- 4.3.1 轮询键盘
- 4.3.2 轮询鼠标
- 4.4 Bomb Catcher游戏
- 4.5 小结
- 第5章 Math和Graphics:Analog Clock示例程序
- 5.1 Analog Clock示例程序简介
- 5.2 基本三角函数
- 5.2.1 圆理论
- 5.2.2 遍历圆周
- 5.2.3 圆示例
- 5.3 Analog Clock示例程序
- 5.3.1 获取时间
- 5.3.2 绘制时钟
- 5.4 小结
- 第6章 位图图形:Orbiting Spaceship示例程序
- 6.1 认识Orbiting Spaceship示例程序
- 6.2 使用位图
- 6.2.1加载位图
- 6.2.2 绘制背景
- 6.2.3 绘制行星
- 6.2.4 绘制航空飞船
- 6.3 环绕行星轨道
- 6.3.1 绕轨道移动
- 6.4 小结
- 第7章 用精灵实现动画: Escape the Dragon游戏
- 7.1 认识Escape the Dragon游戏
- 7.2 使用Pygame精灵
- 7.2.1定制动画
- 7.2.2 加载精灵序列图
- 7.2.3 更改帧
- 7.2.4 绘制一帧
- 7.2.5 精灵组
- 7.2.6 MySprite类
- 7.2.7 测试精灵动画
- 7.3 Escape the Dragon游戏
- 7.3.1 跳跃
- 7.3.2 冲突
- 7.3.3 源代码
- 7.4 小结
- 第8章 精灵冲突:Zombie Mob游戏
- 8.1 Zombie Mob游戏简介
- 8.2 冲突检测技术
- 8.2.1 两个精灵之间的矩形检测
- 8.2.2 两个精灵之间的圆检测
- 8.2.3 两个精灵之间的像素精确遮罩检测
- 8.2.4 精灵和组之间的矩形冲突
- 8.2.5 两个组之间的矩形冲突检测
- 8.3 Zombie Mob游戏
- 8.3.1 创建自己的模块
- 8.3.2 高级定向动画
- 8.3.3 与僵尸冲突
- 8.3.4 获得生命值
- 8.3.5 游戏源代码
- 8.4 小结
- 第9章 数组、列表和元组:Block Breaker游戏
- 9.1 Block Breaker游戏简介
- 9.2 数组和列表
- 9.2.1 有一个维度的列表
- 9.2.2 创建栈式列表
- 9.2.3 创建队列式列表
- 9.2.4 更多维度的列表
- 9.3 元组
- 9.3.1 打包元组
- 9.3.2 解包元组
- 9.3.3 搜索元素
- 9.3.4 计数元素
- 9.3.5 作为常量数组的元组
- 9.4 Block Breaker游戏
- 9.4.1 Block Breaker关卡
- 9.3.2 加载和修改关卡
- 9.3.3 初始化游戏
- 9.3.4 移动挡板
- 9.3.5 移动球
- 9.3.6 撞击挡板
- 9.3.7 撞击砖块
- 9.3.8 主代码
- 9.3.9 更新MySprite
- 9.4 小结
- 第10章 计时和声音:Oil Spill游戏
- 10.1 Oil Spill游戏简介
- 10.2 声音
- 10.2.1 加载音频文件
- 10.2.2 播放音频剪辑
- 10.3 构建Oil Spill游戏
- 10.3.1 游戏逻辑
- 10.3.2 源代码
- 10.4 小结
- 第11章 编程逻辑:Snake游戏
- 11.1 Snake游戏简介
- 11.2 开发Snake游戏
- 11.2.1 画出蛇来——SnakeSegment类
- 11.2.2 增长蛇——Snake类
- 11.2.3 蛇吃食物——Food类
- 11.2.4 初始化游戏
- 11.2.5 主程序
- 11.2.6 通过吃食物而张长
- 11.2.7 咬到自己是不明智的
- 11.2.8 跌落世界之外
- 11.3 教蛇学会自己移动
- 11.3.1 自动移动
- 11.3.2 获得当前方向
- 11.3.3 朝着食物移动
- 11.3.4 其他代码修改
- 11.4 小结
- 第12章 三角数学:Tank Battle游戏
- 12.1 Tank Battle游戏简介
- 12.2 角速率
- 12.2.1 计算角速率
- 12.2.2 Pygame笨拙的旋转
- 12.2.3 以任意角度前后移动坦克
- 12.2.4 改进角度折返
- 12.3 构建Tank Battle游戏
- 12.3.1 坦克
- 12.3.2 子弹
- 12.3.3 主程序代码
- 12.4 小结
- 第13章 随机地形:Artillery Gunner游戏
- 13.1 Artillery Gunner游戏简介
- 13.2创建地形
- 13.2.1 定义高度地图
- 13.2.2 平滑地形
- 13.2.3 定位栅格点
- 13.3 大炮
- 13.3.1 放置大炮
- 13.3.2 绘制炮塔
- 13.3.3 发射大炮
- 13.3.4 让炮弹再飞一会儿
- 13.3.5 计算机开火
- 13.3.6 为击中计分
- 13.4 完整的游戏
- 13.5 小结
- 第14章 更多内容:Dungeon角色扮演游戏
- 14.1 Dungeon游戏简介
- 14.2 回顾经典的Dungeon RPG
- 14.2.1 Rogue
- 14.2.2 NetHack
- 14.2.3 AngBand
- 14.2.4 Kingdom of Kroz
- 14.2.5 ZZT
- 14.3 创建一个地下城关卡
- 14.3.1 理解ASCII字符
- 14.3.2 模拟文本控制台显示
- 14.3.3 生成随机房间
- 14.3.4 生成随机的通道
- 14.4 填充地下城
- 14.4.1 添加入口和出口
- 14.4.2 添加金子
- 14.4.3 添加武器、盔甲和生命值
- 14.4.4 添加怪兽
- 14.4.5 完整的Dungeon类
- 14.4.6 添加玩家的角色
- 14.5 高级游戏逻辑
- 14.5.1 捡拾物品
- 14.5.2 与怪兽战斗
- 14.5.3 移动怪兽
- 14.5.4 可见性范围
- 14.5.5 退出关卡
- 14.5.6 结束游戏逻辑
- 14.6 小结
- 附录A 安装Python和Pygame
- A.1 安装Python
- A.2 安装Pygame
- 附录B Pygame按键代码