博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity 人工智能AI,装备解锁临时笔记
阅读量:6582 次
发布时间:2019-06-24

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

A*算法的一种改进设想:

1.如何让角色到达目标点的过程中更加平滑:获取一串到达目标点的网格串之后,就实时用带形状的物理射线检测能否直接到达下一个目标点的再下一个目标点,如果能到达,那么直接朝该方向运动,如果射线检测到有物体阻挡,那么就重新获取当前路径的下一个点

 

 

Unity解锁功能

解锁条件为分数和关卡数

一.初始数据存储与读取

0配置bool标识,表示是否第一次进入游戏
1在GameManager中建立配置链表,表中的每个元子保存的是装备的名字(作为键)和是否解锁,以及解锁需要的条件,将所有的设置成否
2如果是第一次进入游戏,那么将配置链表中的数据以键值对保存。读取数据到配置链表,将配置链表的数据重新以键值对形式保存为字典从而提高查找速度。

二.装备栏选择装备和显示

1首先读取装备在字典中的是否解锁功能,如果没有解锁,那么装备标识只显示为问号,否则显示为正确的图标,并且选择该装备生效。

三.解锁装备

1在消灭敌人获得分数或者进入下一关的时候对链表中的每个装备进行判断,如果某个装备满足解锁条件,并且还未解锁,那么对该装备进行解锁,并将解锁数据进行存储和再次读取

疑问:如果每个装备解锁的条件不一样,有的只有一个条件,有的需要多个条件同时达成,有的是时间(时长达到多久)条件(这里应该需要每帧都判断),那么这种配置程序该如何编写,才能对每个装备自由设置条件的同时对性能损耗不是太高

我想换种思路,将装备下面的触发状态换成类链表,类中有个继承方法,用于返回真假,如果链表中的每个类都返回真,那么这个装备就解锁了,这样就可以为链表下的每个类都设置不同的条件了

确实有这个问题,一旦每个装备下的每个链表的每个元素类都运行一遍判真函数,时间复杂度真心有点高,条件相同的还判断重复了

这种我说过方法的吧,用状态位整合条件最好。

每一种条件保存一个容器,当此条件满足,遍历容器中的,将相应的位置为1。
装备的类应该这么写。
class Equipment
{
int currentState;
int triggerState;
}
每次状态位改变,就比较小,相等就激活。
一个int32位,各表示32种不同的条件。
比如一件装备的激活条件组合是01001101,你每次修改当前条件变量的位,比较下是不是等于就可以了

转载于:https://www.cnblogs.com/xiaoahui/p/10562508.html

你可能感兴趣的文章
Project Euler 345: Matrix Sum
查看>>
你可能不知道的技术细节:存储过程参数传递的影响
查看>>
.htaccess 基础教程(四)Apache RewriteCond 规则参数
查看>>
UVM中的class--2
查看>>
ORACLE 存储过程异常捕获并抛出
查看>>
root用户重置其他密码
查看>>
Oracle推断值为非数字
查看>>
多年前写的一个ASP.NET网站管理系统,到现在有些公司在用
查看>>
vue-cli中理不清的assetsSubDirectory 和 assetsPublicPath
查看>>
五年 Web 开发者 star 的 github 整理说明
查看>>
Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo
查看>>
中台之上(五):业务架构和中台的难点,都是需要反复锤炼出标准模型
查看>>
React Native 0.20官方入门教程
查看>>
JSON for Modern C++ 3.6.0 发布
查看>>
我的友情链接
查看>>
监听在微信中打开页面时的自带返回按钮事件
查看>>
第一个php页面
查看>>
最优化问题中黄金分割法的代码
查看>>
在JS中使用Ajax
查看>>
Jolt大奖获奖图书
查看>>