博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用于游戏中不同性格怪物移动表现AI演示
阅读量:5122 次
发布时间:2019-06-13

本文共 839 字,大约阅读时间需要 2 分钟。

一个程序功能或算法的实现很多都可以说是一个分类方案的应用。

在很多arpg游戏中都有一些不同"性格"的怪物,当玩家接触它们的时候它们
会有不同的表现。
有些怪物你接近它,攻击它,他都没反应,这里将这类怪物称之为蒙昧型的。
有些怪物你接近它,他会逃跑,这里将这类称为但小型的。
有些怪物你接近它,他可能主动进攻你,进攻一下又会逃跑,这样反反复复,这类就称之为狡猾型的。
有些怪物你接近它,他会对你穷追不舍,这类这里称之为凶恶型的。
上面所述的四种类型在视觉表现上首先表现为位置的移动变化。这个演示中就来演示控制这些
变化的AI。
上面说实现方案,是一个分类方案的应用。
程序功能很多实现都使用了树状的逻辑结构
首先将怪物所处的环境分为三类: 安全、捕掠、危险
这里按照圆域来计算。以怪物自身为中心画圆,第一个圆内的区域成为危险区域,再画一个半径更大的圆,在这个园
内的区域是捕掠区域,在捕掠区域以外是安全区域。怪物自身通过检测有危险的物体是处于自己的那个区域来判定自
身当前的环境是安全状态是捕掠状态还是危险状态。如果是安全状态既可以什么也不做保持原来的行为方式,如果是
捕掠状态则看看是否是要追击,如果是危险状态则看看是要追击还是要逃跑。
追击或者逃跑或者随意的乱走都是移动状态,所以这里将移动状态也划分为这几类:
静止、随意游走、追击、逃跑。
每一种类型的怪物能"感受"到的环境是不一样的,有的永远感觉到是安全的,有的只能感觉到安全和危险,等等
而每一种环境状态下,不同的怪物会有不同的移动行为表现,例如危险环境下,有的会逃跑,有的会追击,有的
若无其事。
以上所述环境状态和移动状态的不同组合,就模拟了不同类型的行为表现。
这个示例中,深灰色的表示蒙昧型的,绿色的表示胆小型的,紫色的表示狡猾型的,红色表示凶狠型的, 请见示例(点击画面可增加更多移动单位):

 

转载于:https://www.cnblogs.com/vilyLei/articles/2953439.html

你可能感兴趣的文章
pair的例子
查看>>
前端框架性能对比
查看>>
@property中 retain 详解
查看>>
uva 387 A Puzzling Problem (回溯)
查看>>
12.2日常
查看>>
同步代码时忽略maven项目 target目录
查看>>
MVC.NET:提供对字体文件.woff的访问
查看>>
Oracle中包的创建
查看>>
团队开发之个人博客八(4月27)
查看>>
发布功能完成
查看>>
【原】小程序常见问题整理
查看>>
C# ITextSharp pdf 自动打印
查看>>
【Java】synchronized与lock的区别
查看>>
django高级应用(分页功能)
查看>>
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
STM32F10x_RTC秒中断
查看>>
display:none和visiblity:hidden区别
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
SpringMVC学习总结(三)——Controller接口详解(1)
查看>>