127 lines
3.3 KiB
Markdown
127 lines
3.3 KiB
Markdown
然后,创建角色类
|
||
|
||
![[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]] |