unity 人工智能AI,装备解锁临时笔记
A*算法的一种改进设想:
1.如何让角色到达目标点的过程中更加平滑:获取一串到达目标点的网格串之后,就实时用带形状的物理射线检测能否直接到达下一个目标点的再下一个目标点,如果能到达,那么直接朝该方向运动,如果射线检测到有物体阻挡,那么就重新获取当前路径的下一个点
Unity解锁功能
解锁条件为分数和关卡数
一.初始数据存储与读取
0配置bool标识,表示是否第一次进入游戏
1在GameManager中建立配置链表,表中的每个元子保存的是装备的名字(作为键)和是否解锁,以及解锁需要的条件,将所有的设置成否
2如果是第一次进入游戏,那么将配置链表中的数据以键值对保存。读取数据到配置链表,将配置链表的数据重新以键值对形式保存为字典从而提高查找速度。
二.装备栏选择装备和显示
1首先读取装备在字典中的是否解锁功能,如果没有解锁,那么装备标识只显示为问号,否则显示为正确的图标,并且选择该装备生效。
三.解锁装备
1在消灭敌人获得分数或者进入下一关的时候对链表中的每个装备进行判断,如果某个装备满足解锁条件,并且还未解锁,那么对该装备进行解锁,并将解锁数据进行存储和再次读取
疑问:如果每个装备解锁的条件不一样,有的只有一个条件,有的需要多个条件同时达成,有的是时间(时长达到多久)条件(这里应该需要每帧都判断),那么这种配置程序该如何编写,才能对每个装备自由设置条件的同时对性能损耗不是太高
我想换种思路,将装备下面的触发状态换成类链表,类中有个继承方法,用于返回真假,如果链表中的每个类都返回真,那么这个装备就解锁了,这样就可以为链表下的每个类都设置不同的条件了
确实有这个问题,一旦每个装备下的每个链表的每个元素类都运行一遍判真函数,时间复杂度真心有点高,条件相同的还判断重复了
这种我说过方法的吧,用状态位整合条件最好。
每一种条件保存一个容器,当此条件满足,遍历容器中的,将相应的位置为1。
装备的类应该这么写。
class Equipment
{
int currentState;
int triggerState;
}
每次状态位改变,就比较小,相等就激活。
一个int32位,各表示32种不同的条件。
比如一件装备的激活条件组合是01001101,你每次修改当前条件变量的位,比较下是不是等于就可以了
unity 人工智能AI,装备解锁临时笔记的更多相关文章
- 数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)的区别是什么? 数据科学(data science)和商业分析(business analytics)之间有什么关系?
本来我以为不需要解释这个问题的,到底数据挖掘(data mining),机器学习(machine learning),和人工智能(AI)有什么区别,但是前几天因为有个学弟问我,我想了想发现我竟然也回答 ...
- 【转】人工智能(AI)资料大全
这里收集的是关于人工智能(AI)的教程.书籍.视频演讲和论文. 欢迎提供更多的信息. 在线教程 麻省理工学院人工智能视频教程 – 麻省理工人工智能课程 人工智能入门 – 人工智能基础学习.Peter ...
- 人工智能--AI篇
AI背景 在当今互联网信息高速发展的大背景下,人工智能(AI)已经开始走进了千家万户,逐渐和我们的生活接轨,那具体什么是AI呢? 什么是人工智能(AI)? 人工智能:简单理解就是由人制造出来的,有一定 ...
- 解读 --- 基于微软企业商务应用平台 (Microsoft Dynamics 365) 之上的人工智能 (AI) 解决方案
9月25日微软今年一年一度的Ignite 2017在佛罗里达州奥兰多市还是如期开幕了.为啥这么说?因为9月初五级飓风厄玛(Hurricane Irma) 在佛罗里达州登陆,在当地造成了挺大的麻烦.在这 ...
- 人工智能AI芯片与Maker创意接轨(下)
继「人工智能AI芯片与Maker创意接轨」的(上)篇中,认识了人工智能.深度学习,以及深度学习技术的应用,以及(中)篇对市面上AI芯片的类型及解决方案现况做了完整剖析后,系列文到了最后一篇,将带领各位 ...
- 人工智能AI芯片与Maker创意接轨 (中)
在人工智能AI芯片与Maker创意接轨(上)这篇文章中,介绍人工智能与深度学习,以及深度学习技术的应用,了解内部真实的作业原理,让我们能够跟上这波AI新浪潮.系列文来到了中篇,将详细介绍目前市面上的各 ...
- 国家制定人工智能(AI)发展战略的决策根据
在今年两会上,李彦宏的提案有何道理?提案的依据是什么?这个问题必须说清楚,对社会公众有个交代. 回想过去,早在上世纪九十年代,用"电子网络"模拟人脑的想法已经出现.这样的" ...
- python实现人工智能Ai抠图功能
这篇文章主要介绍了python实现人工智能Ai抠图功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 自己是个PS小白,没办法只能通过技术来证明自己. 话不多说, ...
- 【AI测试】也许这有你想知道的人工智能 (AI) 测试--第二篇
概述此为人工智能 (AI) 测试第二篇 第一篇主要介绍了 人工智能测试.测试什么.测试数据等.第二篇主要介绍测试用例和测试报告.之后的文章可能具体介绍如何开展各项测试,以及具体项目举例如何测试.测试用 ...
随机推荐
- java基本例子
文件结构 D:\jp\jarDemo\IAmMainClass.java import iAmPackage.*; public class IAmMainClass { public static ...
- 一个机器上运行两个tomcat
一. 在一台计算机上配置2个tomcat是可以的,关键是tomcat里的server.xml文件中三个端口必须不同.需要修改conf/server.xml使两个tomcat占用的端口不相同,在缺省 ...
- ios蓝牙自定义快捷键
http://www.paopaoche.net/app/12072.html Beekeyboard
- windows下如何修改mysql的端口号
- vue+mui轮播图
mui的轮播图,如果图片是请求来的,直接在html中循环是不会动的. 需要请求完图片之后,在setTimeout方法里,使用slider()方法,这样才会动 而且mui的轮播图,有点坑的,需要重复最后 ...
- CString成员函数详解[转]
1.构造函数(常用) CString( const unsigned char* psz ); 例:char s[]="abcdef"; cha ...
- IntelliJ IDEA 2017版 spring-boot 2.03后 Pageable用法;Pageable用法,PageRequest过时,新用法;Pageable过时问题;
1.旧版本Pageable用法: 但是会显示,这个版本已经过时,这时可以查看源码. 一般,一个方法过时,就会在其附近形成一个新的同名的但是其他用法的方法.按照这个理念,来找这个源码.很幸运,蒙对了,我 ...
- 第13章:MongoDB-聚合操作--初体验
①MongoDB 的聚合功能 MongoDB 的聚合功能,聚合操作主要用于对数据的批量处理,往往将记录按条件分组以后,然后再进行一系列操作,例如,求最大值.最小值.平均值,求和等操作. 聚合操作还能够 ...
- linux 环境安装及学习
一.Httpd Linux(Apache)Httpd服务器安装,启动及httpd.conf配置详解 https://blog.51cto.com/itwish/2160492 httpd-2.4. ...
- linux 个人配置记录
一.防火墙操作 1) 重启后生效 开启: chkconfig iptables on 关闭: chkconfig iptables off 2) 即时生效,重启后失效 开启: service ipta ...