网络游戏开发的灵魂_第1页
网络游戏开发的灵魂_第2页
网络游戏开发的灵魂_第3页
网络游戏开发的灵魂_第4页
网络游戏开发的灵魂_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

11游戏程序的灵魂——算法

程序是什么呢?一条著名的公式给了我们答案:程序=数据结构+算法程序语言(如C++)是一种工具.而算法是程序的灵魂。231游戏程序的灵魂——算法你在优美如画的游戏世界里休闲地散步,很不幸,一只妖怪盯上了你,而且它足够聪明,它会选择一条最短的路径向你杀过。为什么这只妖怪那么聪明?4这就是A*(读A星)算法的魔力.A*算法是一种寻找最短路径的寻路算法。5在游戏场景里.近处的游戏角色会遮挡住远处的角色。6要做到这一点.一种方法是可以把所有的角色按其坐标值进行排序.然后以远到近把玩家“放”入到游戏场景里。常用的排序算法有四种:选择排序、冒泡排序、插入排序和快速排序。72游戏数据的大管家——数据结构经典的数据结构,在网络游戏中都能得到体现。

1.道具包管理——线性表在任何网络游戏中.你的道具包里也会放着许多珍贵的道具。在程序中需要把这些数据组织起来.方便管理。使用线性表可以简单方便地做到。892.任务管理——队列与堆栈我在开始玩《梦幻西游》时,在城里走了几圈就接了满身的任务。这让我很烦恼,不知从哪个任务开始做起,这时我想到了队列。队列是一种“先进先出(first—in—first——out,FIFO)”的数据结。就好像是在银行里排队,排在前面的先服务。每次接到任务就把该任务压进任务队列里,要做任务时就从任务队列里取出一个任务,这样哪个任务先接到就先做哪个任务。

10也许你不喜欢这样方式.你想做一个赏金猎人.哪个任务报酬多的就先做哪个任务。这样普通的队列就满足不了你的需求了。你需要的是优先级队列。优先级队列在插入元素时.优先级高的元素插到队列前。把任务的报酬设成是优先级数据。113.游戏菜单设计——树树的一个比较形象的应用是游戏中的UI(UserInterface用户界面)。在UI里的菜单一般是分级的.如在主UI里可能会有“进入游戏”、“选项”、“退出游戏”这几个菜单项.在“进入游戏”里又会有“创建新角色”和“使用旧角色”两个菜单项.而进入“选项”后会有“音频”、“视频”、“游戏设置”等等。使用树来管理这些菜单是很合适的做法。

12134.地图数据管理——图游戏地图是图的应用的一个很好的例子。游戏中的地图一般会被分成一块块的格子.每一块都会有一个坐标值。那么可以使用二维数组把地图的数据记录起来,这是最简单的方法。但大家都知道.鱼与熊掌是不能兼得的,这种方法只能用在很小型的地图上,而较专业的做法是使用图记录地图数据,图的每一个节点对应的是地图的一个坐标。1415163正确的学习途径

学习数据结构与算法是很枯燥乏味的,但不要想找什么捷径,只有理解后反复上机练习、练习再练习!使用过STL(C++标准模板库)的读者可能会问:既然已经有人帮我们实现了各种数据结构与算法。为什么还要自己去学习呢?我们要学习的是蕴涵在数据结构与算法中的思想。我们要理解的是“为什么要这样做”.而不只是停留在“怎样做”,只有理解了这些思想.才能写出更加合理、高效的程序。17学习数据结构从最简单的出发.你需要花一个星期的时间在数组线性表.它的难点主要是在插入数据和删除数据:链表比数组要难一点,但单向链表也只需要一个星期的学习时间,然后再花一个星期学习双向链表向强化练习队列和堆栈是很常用的数据结构,你要花两个星期的时间好好理解一下。然后就是树了,从二叉树开始学.大概要两个星期的时间最后是图,也是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论