前 言
一方面,随着人工智能时代的来临,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)与编辑沟通。
感谢家人、朋友及同事在本书的写作过程中给予的支持和关心,特别要感谢我可爱的女儿,作为最早接触书中游戏案例的人,她在乐此不疲地玩这些游戏的同时,也替我完成了大部分的测试工作。
作 者
于白马湖畔