游戏开发中常用的算法

游戏开发中常用的算法

最新推荐文章于 2023-12-05 10:26:05 发布

Real_JumpChen 于 2018-04-02 17:16:57 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

内容会持续更新,有错误的地方欢迎指正,谢谢!

1.与数组相关的算法: 快速排序(分治思想的应用):不是任何情况都适用,数据量小的话,还不如冒泡快,但快排的确很优秀。堆排序:可用于做游戏排行榜前多少多少名,根据求最大的K个数还是最小的K个数来建最大堆和最小堆,再将最大/小堆的根节点和最后一个子叶节点交换,最后调整堆,重复刚才那两个步骤,直到得到K个数。当然,这种题也可以用红黑树实现的set来做。二分查找:用于查找出分数为多少多少的玩家 2.与树有关的算法

四叉树、八叉树可用来检测大量物体之间的碰撞总次数。

这里写图片描述

3.与图有关的算法

1.小型游戏可以用的简单的寻路算法:

随机寻路算法:当NPC不管是遇到障碍物还是遇到了边界(利用碰撞检测),都会随机选取一个前进的方向,继续行走跟踪算法:当游戏中的主角进入到NPC 的“警戒区域”后,游戏的AI 可轻易获得目标的位置,然后控制NPC 对象移向被跟踪的对象闪避算法:和跟踪算法完全相反,也就是当游戏中的主角进入到NPC 的“警戒区域”后,主角可以去追着NPC跑

2.大型游戏一般使用A*寻路算法:使用最广泛的一种寻路算法,简单说一下A*寻路算法:

这里写图片描述

公式:f(n)=g(n)+h(n),g(n)表示从起点到任意点n的实际直线距离,h(n)表示任意顶点n到目标点的估算距离(常用曼哈顿距离公式用于估算h(n):|x1 - x2| + |y1 - y2|)

把待处理的方格A存入一个”开启列表”,开启列表就是一个等待检查方格的列表;”关闭列表”中存放的都是不需要再次检查的方格。

每次从OPEN列表中选择 f(n) 最小的节点将其加入CLOESE列表中,同时扩展相邻节点并将它们加入OPEN列表,可把OPEN列表看成一个优先队列,key值为 f(n),优先级最高的先出。

最后直到把终点加入OPEN列表中,计算出指针指向就完事了。所以最后的路径就是,从终点开始沿着父指针不断往起点走,最后回到起始点,这样最短路径就找到了:

这里写图片描述

A*寻路的详细介绍请见:https://blog.csdn.net/billcyj/article/details/79462670

3.DFS、BFS也常用于求最优方法这类问题

相关知识

少前云图计划算法效率提升攻略
云计算中的拉姆算法优化实践
J2ME游戏开发
安卓手机游戏用什么语言开发
游戏策划:游戏开发中的关键环节
Vue中如何进行游戏开发与游戏引擎集成?
手机游戏开发需要哪些技术 纯编程爱好者菜鸟求教 – PingCode
如何学习java手机游戏开发
人工智能(AI)行业定制开发手机游戏有哪些步骤?
用JAVA语言开发手机游戏,如何实现 – PingCode

网址: 游戏开发中常用的算法 http://www.hyxgl.com/newsview332093.html

推荐资讯