正版保障 假一赔十 可开发票
¥ 27.99 5.7折 ¥ 49 全新
库存30件
作者何青
出版社清华大学出版社
ISBN9787302549772
出版时间2020-06
装帧平装
开本16开
定价49元
货号28972461
上书时间2024-10-28
一方面,随着人工智能时代的来临,Python编程语言受到热捧,根据 IEEE发布的《2018年*热门的编程语言》,Python在整体排名中位居榜首。随之而来的是对 Python学习的巨大需求,国内高校纷纷开设 Python程序设计课程,而且从 2018年 3月起, Python被纳入全国计算机等级考试科目。中小学也顺应时代的潮流,相继开始进行 Python编程教学。 2018年初,浙江省出台了*新的信息技术课程改革方案, Python确定进入浙江省信息技术高考。北京和山东也将把 Python编程基础纳入信息技术课程和高考的内容体系。
另一方面,随着近年来游戏产业的急剧升温,游戏人才的缺口急剧增大,同时也催生了游戏设计的学习需求,越来越多的人开始学习游戏设计和编程,众多高校先后开设了游戏设计相关的专业及课程。然而游戏程序设计的门槛相对来说比较高,没有太多合适的学习工具让新手入门。关于游戏编程的书籍大多介绍的是专业级的开发工具(如 Unity3D、Cocos2D等),针对初学者的书籍凤毛麟角。
本书尝试将以上两种需求结合起来,即通过 Python语言来介绍游戏编程的基本原理和方法。一方面,可以为 Python语言学习者提供一个实践的平台,通过游戏的设计和编写来深入理解 Python语法,以此提高读者的实践应用能力,进而达到融会贯通的学习效果;另一方面,为游戏设计爱好者提供一个便捷的学习途径,利用 Python的简洁性来介绍游戏设计,可以尽量排除语法层面的障碍,从而方便读者理解及掌握游戏编程的基本原理和实现方法。
主要内容
本书精选了十个游戏案例进行介绍,涵盖了不同的游戏类型。为了让读者能够“趣学”,本书挑选的都是经典而有趣的游戏案例,同时在写作风格上尽量做到轻松有趣,以便*大程度地提高读者的学习兴趣和学习效果。
书中每个游戏案例都被赋予一个主题,内容围绕该主题展开。具体如下:
第 1章介绍弹跳小球游戏,主题为游戏循环的原理。通过设置游戏循环,实现了小球在游戏窗口四周弹跳的效果。
第 2章介绍拼图游戏,主题为鼠标事件处理。通过对鼠标的单击事件进行处理,实现了图片块的移动操作。
第 3章介绍扫雷游戏,主题为函数的递归调用。通过使用递归函数来打开方块,实现了方块的自动打开操作。
第 4章介绍贪食蛇游戏,主题为键盘事件处理。通过对键盘的按键事件进行处理,实现了贪食蛇的移动控制。
第 5章介绍打字游戏,主题为随机数的使用。通过为气球随机生成速度、位置及字母,展示了随机数在游戏设计中的奇妙作用。
第 6章介绍打砖块游戏,主题为碰撞检测及处理。通过对小球与挡板及砖块实施碰撞检测,实现了游戏角色之间的交互行为。
第 7章介绍 Flappy Bird游戏,主题为场景滚动和角色动画。通过滚动显示场景图像,以及为小鸟播放飞行动画,实现了栩栩如生的游戏画面。
第 8章介绍飞机大战游戏,主题为游戏角色的移动特效。通过为敌机设置缓动功能,实现了游戏角色复杂多变的移动效果。
第 9章介绍推箱子游戏,主题为游戏关卡的设计与实现。通过为推箱子游戏添加多个关卡,实现了游戏关卡的设置、加载和切换。
第 10章介绍五子棋游戏,主题为人工智能在游戏设计中的运用。通过为五子棋游戏加入人工智能算法,实现了人机对弈的功能。
本书特色
与时俱进。紧跟计算机技术及产业发展趋势,结合游戏开发、Python语言、人工智能等热点内容,充分满足大众对时兴技术的好奇心和求知欲。
结构清晰。每一章围绕一个经典游戏案例展开,并将案例拆分为几个小任务,然后分任务、分步骤地进行介绍,展示游戏从无到有的全过程。
组织合理。内容按照由易到难的顺序来组织,各章节涉及的知识点先后关联,每一章都会介绍一些新技能,然后在后面的章节中加以运用。
注重实践。将 Python语法知识及常用的编程技巧糅合到各个游戏案例中,以展示 Python语言的实际运用场景,从而达到学以致用的效果。
通俗易懂。采用生动有趣的语言,细致入微的描述,并辅以丰富翔实的图例,充分顾及初学者及低龄读者的阅读习惯。
学习建议
由于本书各章节的知识点在逻辑上先后关联,因此建议从第 1章开始,逐章节地进行学习。若实在对某个章节的案例感兴趣,也可以先学习该案例,当遇到不懂之处再去前面的章中寻找答案。若读者之前不熟悉Python 语言,则可以先看看附录部分关于Python 基础语法的介绍。
在学习本书的过程中,建议跟随着书本将代码亲手编写一遍。对于每个游戏案例的各个小任务,可以先试着自己动手实现,若遇到问题再参考书中的解决办法。而对于书中给出的练习,也希望读者能够认真地加以思考和解决。“纸上学来终觉浅,绝知此事要躬行”,若想真正提高编程能力,除了多动手实践没有其他捷径。
适用读者
本书受众面很广,不仅适用于大学生、青少年,还包括社会大众,甚至中小学生,用来满足其学习游戏设计的需求,以及提高Python 编程水平的需求。
若您对以下几个问题之一持肯定的答案,那么本书便适合您阅读。
您对计算机程序设计感兴趣吗?
您希望学习Python 编程语言吗?
若您有一定的Python 基础,希望进一步提高编程能力吗?
您想了解经典的小游戏是如何设计编写的吗?
您希望学习游戏编程技术来制作自己的游戏吗?
技术支持
由于作者水平有限,书中难免存在一些疏漏,敬请广大读者批评指正。对本书有任何疑问,可以通过清华大学出版社网站(www.tup.com.cn)与编辑沟通。
感谢家人、朋友及同事在本书的写作过程中给予的支持和关心,特别要感谢我可爱的女儿,作为*早接触书中游戏案例的人,她在乐此不疲地玩这些游戏的同时,也替我完成了大部分的测试工作。
作 者
于白马湖畔
全书精选十个游戏案例,涵盖不同的游戏类型,每一章围绕一个经典游戏案例展开,并突出一个游戏编程的主题。本书涉及的主要知识点有游戏循环的原理、鼠标及键盘事件处理、碰撞检测及处理、随机数的运用、定时器的使用、游戏场景的滚动、角色动画的播放、音效及音乐的播放、缓动效果、游戏关卡设计、游戏人工智能的原理及运用等。本书将 Python语法知识及常用的编程技巧糅合在各个游戏案例中介绍,为读者展示 Python语言的实际运用场景。 本书内容安排合理,架构清晰,注重理论与实践相结合,适合作为零基础学习 Python开发初学者的教程,也可作为本科院校及大专院校的教材,还可供职业技术学校和各类游戏培训机构使用。
何青,湖南文理学院计算机教师,毕业于中山大学。从事计算机游戏设计课程教学十余年,教学经验丰富,教学成果显著,主持*产学合作协同育人项目“计算机游戏设计课程教师技能培养”,发表游戏设计教学研究论文多篇,出版游戏设计图书三部:《游戏程序设计教程》《Java游戏程序设计教程》《Java游戏开发实践:Greenfoot编程快速入门》。
第1章 神奇的游戏循环:弹跳小球 / 1
1.1 准备工作 / 1
1.1.1 选择合适的开发工具 / 1
1.1.2 设置开发环境 / 2
1.2 从何处开始 / 3
1.2.1 创建程序窗口 / 3
1.2.2 改变窗口大小和颜色 / 5
1.2.3 显示图像 / 7
1.3 建立游戏世界 / 9
1.3.1 创建游戏场景 / 9
1.3.2 创建游戏角色 /10
1.4 移动小球 /11
1.4.1 改变小球坐标/11
1.4.2 游戏循环/11
1.4.3 朝其他方向移动 /13
1.4.4 移动得快一些 /14
1.5 实现小球反弹 /14
1.5.1 检测小球的位置 /14
1.5.2 将小球反弹回来 /15
1.6 加入更多的小球 /17
1.6.1 添加两个小球 /18
1.6.2 使用列表 /19
1.7 回顾与总结 /21
第2章用鼠标控制游戏:拼图 /24 2.1
添加图片块 /24
2.1.1 准备图片资源 /24
2.1.2 创建游戏场景 /25
2.1.3 用列表管理图片块 /26
2.2 打乱图片块 /27
2.2.1 使用随机函数 /27
2.2.2 将图片块显示出来 /28
2.3 移动图片块 /30
2.3.1 处理鼠标单击事件 /30
2.3.2 选取图片块 /31
2.3.3 判断图片块能否移动 /31
2.3.4 采用模块化编程方法 /32
2.3.5 改变图片块的位置 /33
2.3.6 减少程序的缩进层级 /33
2.4 实现游戏结束 /34
2.4.1 检查拼图是否完成 /35
2.4.2 显示*后一张图片 /36
2.4.3 播放声音效果 /37
2.4.4 显示文字信息 /38
2.5 回顾与总结 /39
第3章递归函数的威力:扫雷 /42
3.1 创建方块阵列 /42
3.1.1 准备图片资源 /42
3.1.2 创建游戏场景 /43
3.1.3 生成方块阵列 /43
3.1.4 埋设 /45
3.2 给方块插上旗子 /46
3.2.1 使用鼠标右键来操作 /46
3.2.2 定义函数执行插旗操作 /47
3.3 打开方块 /49
3.3.1 完善鼠标事件处理 /49
3.3.2 获取周围的方格 /50
3.3.3 统计数量 /52
3.3.4 递归调用打开方块函数 /52
3.4 判定游戏胜负 /54
3.4.1 游戏失败的处理 /54
3.4.2 游戏胜利的处理 /55
3.5 回顾与总结 /57
第4章用键盘控制游戏:贪食蛇 /60
4.1 创建场景和角色 /60
4.1.1 创建游戏场景 /60
4.1.2 创建贪食蛇 /61
4.2 移动蛇头 /62
4.2.1 处理键盘按键事件 /62
4.2.2 让蛇头持续移动 /63
4.2.3 另一种键盘控制方式 /64
4.2.4 延缓贪食蛇的移动 /65
4.2.5 旋转蛇头的图像 /66
4.2.6 使用字典类型 /68
4.3 添加食物 /69
4.3.1 让食物随机出现 /69
4.3.2 让贪食蛇“吃”食物 /70
4.3.3 增长贪食蛇的身体 /71
4.4 实现游戏结束 /74
4.4.1 判断贪食蛇碰到窗口边界 /74
4.4.2 判断蛇头碰到自己身体 /74
4.5 回顾与总结 /76
第5章随机数的妙用:打字 /79
5.1 创建一个字母气球 /79
5.1.1 创建游戏场景 /79
5.1.2 创建气球角色 /80
5.2 添加多个气球 /81
5.2.1 创建多个气球角色 /81
5.2.2 随机生成气球的坐标 /83
5.2.3 随机生成气球的速度 /85
5.2.4 随机生成气球的字母 /87
5.3 实现打字功能 /89
5.3.1 匹配字母的按键 /89
5.3.2 消除气球 /89
5.3.3 修补游戏的 Bug /92
5.4 完善游戏规则 /94
5.4.1 添加游戏积分 /94
5.4.2 实现游戏倒计时 /95
5.4.3 判定游戏结束 /97
5.5 回顾与总结 /98
第6章碰撞检测及处理:打砖块 / 103
6.1 创建场景及角色 / 103
6.1.1 创建游戏场景 / 103
6.1.2 创建游戏角色 / 104
6.2 让角色动起来 / 106
6.2.1 移动挡板 / 106
6.2.2 移动小球 / 107
6.3 处理角色间的碰撞 / 110
6.3.1 碰撞检测的原理 / 110
6.3.2 小球与挡板的碰撞 / 112
6.3.3 小球与砖块的碰撞 / 114
6.4 完善游戏规则 / 116
6.4.1 设置游戏积分 / 117
6.4.2 添加生命值 / 117
6.4.3 实现游戏结束 / 118
6.5 回顾与总结 / 120
第7章让游戏更加生动: Flappy Bird / 124
7.1 创建游戏场景 / 124
7.1.1 设置背景图像 / 124
7.1.2 滚动背景图像 / 126
7.2 添加障碍物 / 128
7.2.1 设置地面 / 128
7.2.2 设置水管 / 129
7.3 添加小鸟 / 131
7.3.1 创建小鸟角色 / 131
7.3.2 模拟重力下的飞行 / 132
7.3.3 播放飞行动画 / 133
7.4 小鸟与障碍物的交互 / 135
7.4.1 小鸟与地面碰撞 / 135
7.4.2 小鸟与水管碰撞 / 136
7.4.3 小鸟飞越水管 / 137
7.5 设计图形用户界面 / 139
7.5.1 显示 GUI图像 / 139
7.5.2 单击“开始”按钮 / 141
7.5.3 播放背景音乐 / 141
7.6 回顾与总结 / 142
第8章实现复杂的移动:飞机大战 / 146
8.1 创建游戏场景 / 146
8.1.1 设置背景图像 / 146
8.1.2 滚动背景图像 / 148
8.2 添加英雄战机 / 148
8.2.1 控制战机移动 / 148
8.2.2 播放战机动画 / 149
8.3 添加子弹 / 151
8.3.1 实现子弹射击 / 151
8.3.2 设置增强道具 / 152
8.3.3 使用三角函数计算坐标 / 154
8.4 添加敌机 / 157
8.4.1 设置缓动效果 / 157
8.4.2 敌机与子弹的交互 / 160
8.4.3 敌机与战机的交互 / 161
8.5 完善游戏效果 / 165
8.5.1 设置 HUD / 165
8.5.2 播放背景音乐 / 166
8.6 回顾与总结 / 167
第9章添加多个游戏关卡:推箱子 / 173
9.1 创建场景和角色 / 173
9.1.1 设置游戏关卡 / 173
9.1.2 加载游戏关卡 / 175
9.2 实现角色的交互 / 177
9.2.1 控制玩家角色的移动 / 177
9.2.2 处理玩家角色的碰撞 / 178
9.2.3 处理箱子角色的碰撞 / 179
9.3 添加新的关卡 / 181
9.3.1 从文件载入关卡 / 181
9.3.2 切换关卡 / 184
9.4 完善游戏功能 / 186
9.4.1 重置关卡 / 186
9.4.2 判定游戏结束 / 187
9.5 回顾与总结 / 188
第10章人工智能的奥秘:五子棋 / 193
10.1 创建棋盘和棋子 / 193
10.1.1 绘制棋盘 / 193
10.1.2 设置棋子 / 195
10.2 执行走棋操作 / 195
10.2.1 使用鼠标下棋 / 1
— 没有更多了 —
以下为对购买帮助不大的评价