用Python和Pygame写游戏-从入门到精通(13)

本文探讨游戏AI的重要性,解释如何通过规则和智能为游戏增添趣味性。介绍如何使用Python编写简单AI,从超级玛丽的例子入手,展示AI如何提升游戏体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转载自:http://eyehere.net/2011/python-pygame-novice-professional-13/


我们已经学习了游戏的图像和输入编程,接下来是什么?声音?没错,不过我们要晚一点再说声音。游戏中还有什么那么重要?哦是的,趣味性。

游戏的趣味是游戏生命的重要组成部分,其重要性甚至凌驾于任何元素,包括画面之上,之所以大家不太想得到,是因为这是个比较难定量的东西,难以直接用个什么方法测量出来。那么支持游戏趣味的是什么呢?是规则智能

规则是游戏的玩法,比如围棋,尽量扩大自己的领地;比如俄罗斯方块,把不同的方块组合起来,不留缝隙;再比如粘土世界,把小球连起来到达目的地。这就是游戏规则的具体体现,好的规则简单让人很容易理解,但是又能产生足够多的变化让我们无法穷尽它的方方面面。书写好的规则是天才或者干脆上天干的事,本系列文章还无法触及,请读者自己修炼了……

我们要学习游戏的另外一个支撑物,智能,或者帅气一点称为AI(Artificial Intelligence,人工智能,因为游戏里的智能肯定是人赋予的)。玩家操作我们自己的角色,那么NPC(nonplayer characters)呢?交由AI去操作,所以如果游戏中有何你相同地位的角色存在的话,你就是在和AI对垒。智能意味着对抗,“与人斗其乐无穷”,就是因为人足够聪明,要想“玩游戏其乐无穷”,我们都得赋予游戏足够的AI。

为游戏创建人工智能

也许你希望能在Pygame中发现一个pygame.ai模块,不过每个游戏中的智能都是不同的,很难准备一个通用的模块。一个简单的游戏中并不需要多少AI编程的代码,比如俄罗斯方块,你只需要随机的落下一个方块组合,然后每次下降完毕扫描一下落下的方块就好了,这甚至不能称为AI。但比如魔兽争霸,这里面的AI就非常的复杂,一般人都要学习一段时间才能打败电脑,可想而知其高度了。

尽管一般游戏中的人工智能都是用来对付人类的,不过随着游戏发展,AI也可能是我们朋友,甚至AI互相影响从而改变整个游戏世界,这样的游戏就有了更多的深度和未知,无法预知的东西总是吸引人的不是么?

游戏的AI编程不是一件简单的事情,幸运的是AI代码往往可以重用,这个我们以后再讲。

我们接下来要讲述游戏AI的技术,赋予游戏角色以生命,应该说人工智能是很高端的技术,花费几十年都未必能到达怎么的一个高度,所以这里的几章还是以讲解重要概念为主。作为参考,个人推荐Mat Buckland的《AI Techniques for Game Programming》,中文版《游戏编程中的人工智能技术》由清华大学出版社出版,很不错的一本入门书籍。

什么是人工智能

出于严谨性,我们应该给人工智能下一个定义。每个人都会对智能有一个概念,但又很难给它下一个确切的定义。著名的美国斯坦福大学人工智能研究中心尼尔逊教授对人工智能下了这样一个定义:“人工智能是关于知识的学科――怎样表示知识以及怎样获得知识并使用知识的科学。”而另一个美国麻省理工学院的温斯顿教授认为:“人工智能就是研究如何使计算机去做过去只有人才能做的智能工作。”这些说法反映了人工智能学科的基本思想和基本内容。即人工智能是研究人类智能活动的规律,构造具有一定智能的人工系统,研究如何让计算机去完成以往需要人的智力才能胜任的工作,也就是研究如何应用计算机的软硬件来模拟人类某些智能行为的基本理论、方法和技术。但这些说辞太麻烦了,我觉得,人工智能就是自我感知和反应的人造系统,足矣。

智能是一件玄妙的事情,在游戏中的人工智能更是如此,我们用程序中的一些数据结构和算法就构筑了NPC的大脑,听起来太酷了!更酷的是,Python非常适合用来编写人工智能。

人工智能初探

举超级玛丽为一个例子,那些走来走去的老乌龟,我们控制英雄踩到它们头上就能杀死它们,而平时,它们就在两根管子之间走来走去(这样的人生真可悲……),如果我们打开它们的脑袋看一下,可能会看到这样的代码:

无比简单,向前走,一撞墙就回头,然后重复。它只能理解一种状态,就是撞墙,而一旦到达这个状态,它的反应就是回头。

在考虑一个会发子弹的小妖怪,它的脑袋可能是这么长的:

它就有了两个状态,搜寻锁定。如果正在搜寻,就随处走动,如果发现目标,就锁定他,然后靠近并试着向其开火,而一旦丢失目标(目标走出了视线范围或者被消灭),重新进入搜寻状态。这个AI也是很简单的,但是它对玩家来说就有了一定的危险性。如果我们给它加入更多的状态,它就会变得更厉害,游戏的趣味性也就可能直线上扬了。

OK,这就是我们下一次要讲的主题,状态机


### 回答1: 《Python Pygame 游戏 -入门精通.pdf》是一本关于使用Python语言Pygame库编游戏的书籍。Python是一种简单易学的编程语言,具有丰富的库工具,非常适合初学者入门。而Pygame是为了方便开发2D游戏而设计的库,提供了丰富的函数类,可以帮助开发者轻松地创建游戏。 这本书的目标是帮助读者从游戏开发的基础知识入手,逐步了解PythonPygame的使用方法,并逐渐提高到精通水平。书中按照渐进式的学习方式,从基本的Python语法开始介绍,然后逐步引入Pygame库的功能特性。读者可以学习如何创建游戏窗口,绘制图形精灵,处理用户输入,实现游戏逻辑等。 此外,书中还涵盖了一些高级的游戏开发技术,比如碰撞检测、音效处理、动画效果物理模拟等。通过学习这些内容,读者将能够掌握更多复杂游戏的开发方法,并能够自己设计实现自己的游戏。 总的来说,《Python Pygame 游戏 -入门精通.pdf》是一本适合初学者有一定编程基础的读者学习游戏开发的书籍。读者可以通过学习这本书,掌握使用PythonPygame开发游戏的基本技能,从而进一步提升自己在游戏开发领域的能力。 ### 回答2: 《Python Pygame 游戏-入门精通》是一本关于使用Python编程语言Pygame游戏开发库来编游戏的指南。它逐步介绍了从入门精通的过程,并教会读者如何利用PythonPygame创建自己的游戏Python是一种简单易学的高级编程语言,被广泛应用于各种领域,包括游戏开发。Pygame是一个基于Python的库,专门用于开发2D游戏。它提供了许多功能强大的工具函数,可以帮助开发者处理游戏图形、声音、输入等方面的内容。 《Python Pygame 游戏-入门精通》一书首先向读者介绍了PythonPygame的基础知识,包括安装配置开发环境以及PythonPygame的基本语法功能。然后,它逐渐深入探讨了游戏开发的不同方面,包括游戏循环、图形绘制、碰撞检测、游戏物理等。书中使用了大量的示例代码实际案例来帮助读者理解应用所学知识。 通过学习《Python Pygame 游戏-入门精通》,读者将获得从入门精通游戏开发技能。他们将学会创建各种类型的游戏,从简单的益智游戏到复杂的角色扮演游戏。此外,书中还提供了一些高级技巧技术,如使用人工智能网络功能来增强游戏体验。 总之,这本书是一本全面而深入的学习资源,适合那些希望利用PythonPygame开发游戏的初学者有经验的开发者。它将引导读者从零开始掌握游戏开发的基本技能,并帮助他们创建自己的精彩游戏作品。 ### 回答3: 《PythonPygame游戏-入门精通.pdf》是一本专门介绍如何使用Python及其游戏开发库Pygame来编游戏的书籍。 Python是一种高级编程语言,易于学习使用。它具有简洁的语法丰富的标准库,可以进行各种编程任务,包括游戏开发。Pygame是一个基于Python的开源游戏开发库,提供了丰富的功能工具,方便开发者进行游戏的设计制作。 这本书从入门精通的目标,意味着它适合各种编程经验水平的读者。对于初学者,它会介绍PythonPygame的基本知识概念,例如变量、条件语句、循环函数等。然后,它将引导读者学习如何使用Pygame库中的各种功能模块来创建游戏窗口、处理用户输入、绘制图形等。通过实际的示例练习,读者可以逐步掌握游戏设计开发的基本技能。 对于有一定编程经验的读者,本书也提供了更高级的内容技巧,例如碰撞检测、动画效果、游戏物理学等。读者可以通过这些深入的学习,进一步提升自己的游戏开发能力,设计出更加有趣复杂的游戏。 总的来说,《PythonPygame游戏-入门精通.pdf》是一本对于想要学习如何使用PythonPygame游戏的读者来说非常有价值的书籍。通过它的指导,读者可以系统地学习游戏开发的基础知识技能,并逐步提高自己的水平,成为一名优秀的游戏开发者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值