《Python游戏编程入门》——导读

简介:


screenshot

前 言

本书沿着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 初识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游戏
第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按键代码

相关文章
|
29天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
28天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
16天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
102 80
|
5天前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
27 14
|
15天前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
50 2
|
28天前
|
小程序 开发者 Python
探索Python编程:从基础到实战
本文将引导你走进Python编程的世界,从基础语法开始,逐步深入到实战项目。我们将一起探讨如何在编程中发挥创意,解决问题,并分享一些实用的技巧和心得。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的参考。让我们一起开启Python编程的探索之旅吧!
46 10
|
1月前
|
机器学习/深度学习 人工智能 Java
Python 语言:强大、灵活与高效的编程之选
本文全面介绍了 Python 编程语言,涵盖其历史、特点、应用领域及核心概念。从 1989 年由 Guido van Rossum 创立至今,Python 凭借简洁的语法和强大的功能,成为数据科学、AI、Web 开发等领域的首选语言。文章还详细探讨了 Python 的语法基础、数据结构、面向对象编程等内容,旨在帮助读者深入了解并有效利用 Python 进行编程。
|
30天前
|
机器学习/深度学习 人工智能 数据挖掘
探索Python编程的奥秘
在数字世界的海洋中,Python如同一艘灵活的帆船,引领着无数探险者穿梭于数据的波涛之中。本文将带你领略Python编程的魅力,从基础语法到实际应用,一步步揭开Python的神秘面纱。
44 12
|
29天前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
28天前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
38 7