技术栈小结
观察者模式:
观察者基类
数据:
如果需要判断就需要定义被观察者类型数据(容器)
方法:
通知方法:
参数:泛型指定游戏物体
event指定游戏物体的行为逻辑(方法)
响应事件:
方法体:调用其他对象或者本身的方法进行响应
被观察者基类
数据:
观察者容器
方法:
对观察者容器的增删改查
触发器()
触发器有两种模式
1直接回调观察者类的方法
2将自己传递给观察者类,由观察者类判断是否响应事件
对容器中的观察者发送事件(调用通知方法)
命令模式:
命令模式基类
数据:
被命令的游戏物体的容器
方法:
对容器的增删改查
对游戏物体行为逻辑改变的各种方法
各类游戏物体基类
总体敌人管理类(命令者模式)
数据
各类型敌人容器
方法
容器增删改查的方法
对单个游戏物体的行为逻辑控制
敌人AI行为逻辑功能类
数据
敌人对象状态
方法
以对指定目标距离为基础切换状态
玩家输入操作player游戏物体的功能管理类
数据
对于多个人物可控制的应用情景需要设置玩家人物容器
方法
对容器增删改查
输入方式选择调用人物行为逻辑:
键盘输入
鼠标输入
UI事件输入
人物行为逻辑工具类(指定游戏物体进行操作)(使用时挂载到具体的人物行为逻辑上)
方法
人物移动
人物行为逻辑功能类
数据
人物状态
方法
根据人物状态切换动画状态
摄像机控制管理类(命令者模式)
数据
摄像机对象容器
当前正在使用的摄像机集合
方法
对容器的增删改查
对当前正在使用的摄像机增删改查
摄像机对象工具类
方法:
移动控制
(如果是鼠标控制的需要检查当前鼠标是否在操作UI)
鼠标输入控制管理类
将鼠标位置由屏幕坐标转换为世界坐标,相对坐标,UI平面坐标
3D物体transform控制功能类
拖拽平移或旋转,高亮,移动到某个位置
3d游戏物体的拾取和展示管理类
数据:
游戏物体容器
当前命令
准备接收当前命令的游戏物体状态(未执行)
方法:
增删改查
判断当前摄像机状态能否展示游戏物体
命令游戏物体移动到摄像机面前
选中另一个游戏物体,将之前命令的物体返回为之前的状态
UIrecttransform控制功能类
数据
data基类
player信息类
枚举player信息
enemy信息类
枚举
物品信息类
枚举
信息管理类
数据
信息容器
方法
增删改查
从外部获取json数据
解析json数据
保存到本地容器
初始化数据
将数据保存到本地(TXT)
获取本地数据(TXT)
CG动画管理类(观察者)
数据
视频容器
timeline容器
方法
当游戏物体触发事件,管理类监听到后,就播放