本文共 3175 字,大约阅读时间需要 10 分钟。
本书沿着Python Programming for the Absolute Beginner, Third Edition(Michael Dawson著)的步伐,继续帮助初学者学习Python。如果你是初次接触Python的话,我强烈建议你先阅读那本书。你将会通过Dawson给出的易于掌握的示例,快速学会Python语言,这个过程方向清晰、步骤简洁,而且能够掌握重要的概念。Dawson的书会帮助你起步,因此,本书现在是将你的Python提升到更高一点的水平。我们将学习很不错的Pygame库,如果你愿意的话,还可以支持OpenGL以进行更高级的3D渲染!但是,现在我们先不要跑得太远。
本书主要关注的是使用Pygame进行2D图形开发,而这只是Dawson的书的最后一章所关注的内容。Dawson的书以此话题结尾,而本书从这个话题开始,这使得这两本书相得益彰。
本书教授用Python开发精彩游戏所需的最为重要的概念。本书不仅是一本“新手”指南,还深入到复杂的主题,将会使你付出数月的繁忙,在自己的游戏思路中使用这些概念。单单是目标瞄准以及速度这样的概念,不足以让一般的程序员繁忙到开发众多的街机式的射击游戏。这些概念只是在现实策略游戏(RTS)中才能找到,因为正是和用来向目标发射子弹完全相同的概念,也用来把人物向目标移动。
本书不只是介绍游戏编程概念的相关内容。我们首先学习了基础知识,从Python类开始,我们介绍了变量数据类型、文本输出、列表和元组,以及其他重要的Python语言基础知识。示例从简单的开始,并且当你学到最后几章的时候,将使用学到的所有概念来构建较为复杂的游戏,这意味着我们还将进行较为复杂的Python编程。
如果你还没有读过Dawson的书,并且也完全是编程新手,在理解本书中的所有代码的时候,你可能会遇到一些困难。那是因为本书是紧随Dawson的书之后,因此,两本书并非各自为战。如果你已经有一些编程经验,即便是C++、Java或C#等其他语言的编程经验,那么,还是应该能够很好地学习完本书。
本书是基于Python 3.2和Pygame 1.9的。使用较早的Python版本将无法编译源代码。
章节构成本书中各章的内容的简单介绍如下。
第1章 使用类的Python
本章从强调面向对象编程的角度给出了Python语言的概览。本章介绍了如何创建带有构造函数、方法以及属性的类,还通过一个示例程序展示了和几何相关的几个类。
第2章 初识Pygame:PIE游戏
本章介绍了Pygame库,本书后续的各章都将使用它。Pygame使得我们能够用Python编写带有2D图形和位图的图形演示程序和游戏。
第3章 文件I/O、数据和字体:Trivia游戏
本章介绍如何使用文件输入/输出函数来读取和写数据。示例代码展示了如何打开一个文件,以读取和写入文本和二进制数据。文件访问代码随后将用来开发一个Trivia游戏,它带有图形化文本输出,使用Pygame的字体支持。
第4章 用户输入:Bomb Catcher游戏
本章介绍了使用Pygame实现用户输入,它既是事件驱动的,也是轮询的。这意味着,我们可以响应用户输入事件,或者可以询问Pygame是否有用户输入的数据。为了展示用户输入,我们创建了一个叫作Bomb Catcher的实时的游戏。
第5章 Math和Graphics:Analog Clock示例程序
本章深入到数学和图形的复杂主题,也就是说,使用数学来对图形生成有趣的特殊效果。示例程序展示了如何制作带有真正移动的指针的一个模拟钟表,使用数学方法来旋转指针。
第6章 位图图形:Orbiting Spaceship示例程序
本章初次进入位图图形的世界。可以在内存中创建位图,但是,通常要从一个位图文件加载它,并且在游戏中用作美工图。我们使用位图创建了本章的示例,这是一个太空飞船围绕行星轨道飞行的例子。
第7章 用精灵实现动画:Escape the Dragon游戏
本章进一步深入高级位图编程的话题,这是通过引入Pygame的精灵支持而实现的。我们使用这一惊人的功能来创建自己的精灵类以实现帧动画,并且通过带有精灵动画的示例游戏来展示它。
第8章 精灵冲突:Zombie Mob游戏
本章还是与精灵编程相关,展示了如何检测游戏对象与屏幕何时发生冲突,以及如何响应这些冲突。这是大多数游戏逻辑的基础。为了展示这点,我们创建了一个Zombie Mob游戏。
第9章 数组、列表和元组:Block Breaker游戏
本章介绍了非常重要的主题,即数组、列表和元组,它们都具有类似的行为。它们的目的是为了包含其他的对象(如精灵),或者只是像数字或名称这样的简单对象。我们使用这些信息,通过在一个列表中定义游戏的关卡,来创建一款支持关卡设计的游戏。
第10章 计时和声音:Oil Spill游戏
本章介绍了如何使用Pygame的定时和音频功能。这些主题不一定相关,但是通常会在一起使用,因为游戏中的声音效果,通常是通过需要某种定时的事件来触发的。我们创建了一个名为Oil Spill的示例游戏,以展示这些概念。
第11章 编程逻辑:Snake游戏
本章展示了如何创建经典的Snake游戏,以作为学习如何为游戏逻辑编写源代码的工具。这一主题是人工智能的一种简单形式。我们教示例游戏中的贪吃蛇如何自己找到食物而不依靠用户输入。
第12章 三角函数:Tank Battle游戏
本章回到了数学这一整体性的话题,并且介绍三角学如何成为游戏编程的强大工具。我们使用几种三角函数来制作Tank Battle游戏,其中坦克的炮塔跟随屏幕上的鼠标光标而旋转,并且这用来瞄准敌人的坦克。
第13章 随机地形:Artillery Gunner游戏
本章介绍了一个相当复杂的主题,为本章的项目Artillery Gunner游戏生成随机地形。我们使用矢量图而不是位图来生成随机地形,在其上放置两个相互对峙的大炮,然后,允许玩家和计算机对战,尝试击中对方。这用到了我们学习过的所有数学功能,并且这款游戏真的很有趣。
第14章 更多内容:Dungeon角色扮演游戏
本书最后一章是一个不朽的项目,系统地展示了如何开发一款完整的角色扮演游戏。
附录A 安装Python和Pygame
这个附录说明了如何安装Python和Pygame。
附录B Pygame按键代码
这个附录包含了Pygame中使用的按键编码的列表。
[第1章 使用类的Python
1.1 了解Geometry程序](1.2.1 Python工具1.2.2 Python语言1.3.1 在面向对象之前是什么1.3.2 接下来是什么1.3.3 OOP:Python的方式1.3.4 单继承1.3.5 多继承第2章 初识Pygame:Pie游戏第3章 I/O、数据和字体:Trivia游戏第4章 用户输入:Bomb Catcher游戏第5章 Math和Graphics:Analog Clock示例程序第6章 位图图形:Orbiting Spaceship示例程序第7章 用精灵实现动画:Escape the Dragon游戏第8章 精灵冲突:Zombie Mob游戏第9章 数组、列表和元组:Block Breaker游戏第10章 计时和声音:Oil Spill游戏第11章 编程逻辑:Snake游戏第12章 三角函数:Tank Battle游戏第13章 随机地形:Artillery Gunner游戏第14章 更多内容:Dungeon角色扮演游戏附录A 安装Python和Pygame附录B Pygame按键代码转载地址:http://sjldx.baihongyu.com/