阅读笔记-游戏开发中的人工智能-第3章-移动模式
1. 标准算法
移动模式,实际上就是控制角色移动的方式。比如:可以建立圆形、方形、蛇形、曲线以及其他类型的模式。
标准移动模式算法使用控制指令,指示计算机控制的角色,在每一轮游戏循环中如何移动。
下以一个蛇形的移动模式为例,进行说明:
下面就是一组控制指令 :
(turn_right, turn_left, step_forward, step_backward)
(0, 0, 2, 0)
(0, 0, 2, 0)
(10, 0, 0, 0)
(10, 0, 0, 0)
(0, 0, 2, 0)
(0, 0, 2, 0)
(0, 10, 0, 0)
有了上面这些控制指令,只有重复依次调用这些指令,就能让角色进行蛇形移动了。
准备多个模式,选择使用可以让角色更加智能。
2. 砖块环境中的移动模式
对于砖块环境,可以指定一系列要移动到的点的相对位置(相对于起始点)。
比如一个方形的移动模式可以表示为:
(10, 3, 18, 3)
(18, 3, 18, 12)
(18, 12, 10, 12)
(10, 12, 10, 3)
对于这四个点,就能得到要移动的四条线段,然后利用第二章中的视线移动方法,算出这四条线段的路径,通过这些路径就能很好的控制角色的移动了。书中给出了具体使用Bresenham进行计算移动模式路径的实际代码。
有的时候希望角色的移动更加难以预测,以方形移动模式为例,要么顺时针移动,要么逆时针移动,这太容易被玩家发现了,可以建立一个数组,将所有可以移动到的位置置为1,其他置为0,这样,每走到一个位置时,随即选择可以走的位置,这样就可能顺时针走几下就回头了。还可以更加精细控制,比如:限制只能在拐角处,作出随即选择,或者玩家角色和控制角色在一条直线时(认为此时角色可能看到玩家角色了),向玩家角色的方向移动等等。
3. 仿真物理环境中的移动模式
这部分主要是和仿真物理引擎打交道,比如:前进和移动的速度和最大速度,转动的角度和最大角度,等等,移动模式的设置,需要考虑到仿真环境的情况。通过分析物理引擎的情况,给出若干条指令来完成一个模式,感觉和第一节中的情况很类似。
转载于:https://www.cnblogs.com/pangxiaodong/archive/2011/05/13/2045306.html
阅读笔记-游戏开发中的人工智能-第3章-移动模式相关推荐
- 游戏开发中的人工智能(二):追逐和闪躲
接上文 游戏开发中的人工智能(一):游戏人工智能简介 本文内容:讨论基本的追逐和闪躲技术,以及进级的拦截技术.我们也谈及这些技术在砖块环境和连续环境中的变化. 追逐和闪躲 本章的焦点是追逐和闪躲,这是 ...
- 游戏开发中的人工智能(五):以势函数实现移动
接上文: 游戏开发中的人工智能(四):群聚 本文内容:靠势能移动在游戏 AI 程序中还算相当新颖.这个方法的最优越的地方在于可以同时处理追逐.闪躲.成群结队和避免碰撞等行为.我们专门研究的这个势函数叫 ...
- 游戏开发中的人工智能(十三):不确定状态下的决策:贝叶斯技术
接上文 游戏开发中的人工智能(十二):概率概论 本文内容:贝叶斯技术是概率技术,本章解释如何运用,以便在游戏中做决策并适应游戏. 不确定状态下的决策:贝叶斯技术 本章要介绍贝叶斯推论和贝叶斯网络,教你 ...
- 游戏开发中的人工智能(十四):神经网络
接上文 游戏开发中的人工智能(十三):不确定状态下的决策:贝叶斯技术 本文内容:"神经网络"技术让游戏具有学习和适应的能力.事实上,从决策判断到预测玩家的行为,都可以应用.我们会详 ...
- 游戏开发中的人工智能(六):基本路径寻找及航点应用
接上文:游戏开发中的人工智能(五):以势函数实现移动 本文内容:游戏开发人员使用很多技术在游戏环境中寻找路径.本章要谈几种方法,包括航点应用. 基本路径寻找及航点应用 寻找路径的问题有很多不同类型.没 ...
- 游戏开发中的人工智能(十一):规则式 AI
接上文 游戏开发中的人工智能(十):模糊逻辑 本文内容:技术上而言,有限状态机和模糊逻辑都落在基于规则的方法这个大伞之下.本章将谈这些方法,以及其他变化的方法. 规则式 AI 本章我们要研讨基于规则的 ...
- 游戏开发中的人工智能(一):游戏人工智能简介
本系列文章对<游戏开发中的人工智能>David M.Bourg / Glenn Seemann 一书进行解读. 这本书谈了很多游戏软件 AI 的主题,内容深度适合初涉开发人员.所以,无论你 ...
- 为什么在游戏开发中我不喜欢用MVC系列模式了
为什么在游戏开发中我不喜欢用MVC系列模式了: 1,代码繁冗,当你阅读别人的代码,一个很简单的逻辑,被封装了多次,需要在多个代码文件中索引,阅读效率极低.代码文件分散,一些很简单的逻辑,例如按钮点击, ...
- 游戏开发中的人工智能
前言 今天非常开心,观看cocos官方直播居然在几千人中中奖,可以买彩票了. 言归正传,所谓的人工智能,也就是大家常说的AI(Artificial Intelligence).一说到AI可能就会让人觉 ...
- Unity3D游戏开发中的人工智能AI 简单实例
今天我想说的是游戏中的人工智能.人工智能这个东西在游戏中是非常重要的,人工智能说简单了就是根据随机的数字让敌人执行一些动作或逻辑,说难了TA需要一个非常复杂的算法,本文我主要说说Unity ...
最新文章
- Python os.getcwd() 方法
- 公基考计算机知识吗,2021河北唐山事业单位公基备考知识:计算机常识
- 使用C/C++发展Web系统开源
- jquery 对 Json 的各种遍历
- 什么是集电极开路(OC)?什么是漏极开路(OD)?为什么必须要在OC门输出的IO口上加上拉电阻?
- 沫沫金:联想E431 1K6安装Windows系统100%成功技巧
- 《51单片机应用开发从入门到精通》——2.6 中断控制功能的作用
- 【ASP.NET Core 沉思录】CreateWebHostBuilder 是一个 Convension
- Flutter NestedScrollView实现的一个经典滑动折叠头部图片的效果
- 谷歌大神Jeff Dean领衔,万字展望5大AI趋势
- mysql 批量插入数据
- python语言的赋值语句可以改变变量的类型吗_python 数据类型和变量
- 对称密钥和非对称密钥
- 误差传递公式(law of propagation of uncertainties)
- 利用数据库进行肿瘤基因的挖掘
- android 通话录音
- Xposed模块初体验——第一篇
- python实现从oracle读数据写入mysql(1)
- 记一次糟心的前端笔试(2)
- 电商直播元年 微媒云播打造私域流量火爆商业新模式
热门文章
- Android 网络通信 之 UDP
- @TableField注解使用(忽略扫描)
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_18-异常处理-不可预知异常处理...
- 阶段3 2.Spring_04.Spring的常用注解_4 由Component衍生的注解
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_3_绝对路径和相对路径...
- 64位Websphere MQ7在64位RHEL5下的安装及使用
- Async.js——Node世界中被依赖最多的库No.3
- SimpleDateFormat多线程下的安全问题(解决方法)
- 关于阿里巴巴发布普惠体的一些思考
- 面向面试编程-概念之-分布式与集群的区别和联系