obsidian/笔记文件/2.笔记/设计模式复习_第五章.md

127 lines
3.3 KiB
Markdown
Raw Permalink Normal View History

2025-03-26 00:02:56 +08:00
然后,创建角色类
![[Pasted image 20230528195854.png]]
其中包含角色名字,最大生命值,移动速度,当前生命值,图标
![[Pasted image 20230528195901.png]]
弄两个属性类,分别是敌人属性,和士兵属性
![[Pasted image 20230528200013.png]]
![[Pasted image 20230528200043.png]]
![[Pasted image 20230528200051.png]]
角色是跟武器挂钩的,也整一个武器基类
![[Pasted image 20230528200221.png]]
也是抽象类
声明有编号范围加成属性对应的GameOBject预制体归属通过角色类划分粒子系统绘制线体也就是子弹弹道灯光音源
再整一个抽象的开火方法类
![[Pasted image 20230528200321.png]]
四种武器,创建四个类
![[Pasted image 20230528200906.png]]
继承和方法体重写
![[Pasted image 20230528200949.png]]
![[Pasted image 20230528200958.png]]
![[Pasted image 20230528201005.png]]
![[Pasted image 20230528201015.png]]
角色属性有了,武器类有了,开始完善角色基类
声明里面,有角色属性,对应预制体,导航系统,音源,拥有武器类
再整一个攻击方法,是调用了武器的开火方法
![[Pasted image 20230528201114.png]]
弄完角色相关开始弄ui相关先整一个ui基类
![[Pasted image 20230528201415.png]]
也是一个抽象类其中包含3个虚函数分别是初始化更新释放资源
![[Pasted image 20230528201440.png]]
整四个ui类
![[Pasted image 20230528201606.png]]
继承同理
![[Pasted image 20230528201654.png]]
![[Pasted image 20230528201702.png]]
![[Pasted image 20230528201711.png]]
![[Pasted image 20230528201722.png]]
弄一个中间者类,是统筹处理的
![[Pasted image 20230528201903.png]]
先弄一个instance单例
然后一个布尔判断,游戏是否结束
再弄俩获取器,分别是获取自身的单例,还有获取游戏是否结束的
继续弄一个构造函数,暂时是空的
![[Pasted image 20230528202008.png]]
声明各个系统类和ui类
![[Pasted image 20230528202140.png]]
整一个初始化函数是实例化各系统和ui对象然后调用各初始化
![[Pasted image 20230528202228.png]]
更新函数和释放函数,同理
![[Pasted image 20230528202339.png]]
弄完相关的逻辑关系,又开始继续鼓捣引擎场景
先切换到第二个场景,删掉多余的光线,再设置一下相机的渲染相关
因为没涉及3d第二个场景只是开始游戏按钮相关的ui
![[Pasted image 20230528202548.png]]
弄一个按钮,命名
简单调整一下位置
![[Pasted image 20230528202803.png]]
简单设置一下锚点
![[Pasted image 20230528202849.png]]
![[Pasted image 20230528202910.png]]
完善主菜单场景的逻辑
状态开始的逻辑函数,拿到按钮的点击事件
绑定一个函数按钮函数,其中的功能,是切换到战斗状态
![[Pasted image 20230528203001.png]]
回到第一个场景
![[Pasted image 20230528203220.png]]
运行游戏,自动切换到第二个场景后,点击,是正常切换到战斗场景的
![[Pasted image 20230528203157.png]]
继续完善战斗场景状态的逻辑
场景开始函数会调用GameFacade的初始化
然后场景更新函数判断游戏是否结束如果游戏结束的布尔为true就把控制器切换到主菜单场景
![[Pasted image 20230528203410.png]]