概述:
本篇文章作为,本次游戏项目的完结篇,优化了人物不同状态下进入关卡4的逻辑,人物形象逻辑、英雄和怪物攻击逻辑,新增:英雄头衔,攻击连击,完结、生命值归0界面,重新开始游戏和返回主界面功能;增加事件:PropertyChanged。
效果:
1.BOSS关卡场景效果
2.英雄攻击方向不是怪物时,怪物直接攻击英雄。
- 游戏失败,选择返回主界面场景
4.游戏失败,选择重新加载游戏场景
更新内容
1. 新增节点
节点名称 | Preview窗口对应情况 |
---|---|
Game_Over | 黑色背景图 |
Falied | 文字:游戏失败 |
B_RRstart | 不显示:用于控制切换回场景1 |
Restart | 文字:重新开始 |
Return_Main | 文字:返回主界面 |
B_Main | 不显示:用于控制返回游戏开始场景 |
Game_End | 不显示,用于存放子节点,控制总体的显示与隐藏 |
Over_BG | 黑色背景图 |
End | 文字:完结 |
Restore_Op | 不显示,用于控制所有Opacity=1 |
BX | 关卡4:宝箱图片 |
Hero_AtText | 不显示,用于控制子节点位置 |
Text0 | 文字:连击/头衔…… |
Text1 | 连击的数字 |
节点名称 | 节点数量 |
---|---|
Layer | 1 |
Item | 4 |
Text | 5 |
Button | 3 |
2. 绑定和事件
首先对Monster_Move_1节点表达式进行优化,删除多余表达式,用于设置当前节点Visible属性。
设置场景4的原有Monster_Move_2、3、4、5新增自定义属性LP2,用于控制如果英雄的攻击的方向不是怪物,则怪物不掉血。只有和英雄位置相同时会使英雄掉血。
var hx = {$../../Hero/ShowX}
var hy = {$../../Hero/ShowY}
var y = {$./Y}
var L = {$../../HeroMassage/Leverl}
var Num = {$../../Hero/Num}
var sumy
sumy = hy - {$./Y}
(hy >= y && Num == 3 && sumy < 64 && L == 4 && {$./Visible} == 1):1
(hy >= y && Num == 4 && sumy < 64 && L == 4 && {$./Visible} == 1):1
修改Monster_BOSS节点的LP自定义属性表达式,让它进行判断当人物移动到特定位置时开始计数(连击数),并且当英雄处于关卡4的时候计数不消失,离开关卡4连击数量消失。
var hx = {$../../Hero/ShowX}
var hy = {$../../Hero/ShowY}
var L = {$../../HeroMassage/Leverl}
var hnum = {$../../Hero/Num}
var v = {$./Opacity}
(hx == 128 && hy == 96 && L == 4 && hnum == 1 && v > 0):{$./LP}={$./LP}+0.1
var sum = {$./LP}
(hx != 128 || hy != 96 || hnum != 1 || v <= 0):sum
增加PropertyChanged事件,当Opacity属性发生变化时,判断正确后让宝箱显示。
BX节点新增自定义属性LP,用于计数,用于控制跳转到完结的界面,通过计数的方式来实现延时跳转的功能。
设置BX节点的PropertyChanged事件,当LP发生改变时判断条件正确时,显示完结界面,实现跳转的功能。
设置Hero_Text节点的X、Y属性绑定,绑定在Hero节点的X、Y属性。
继续设置当前节点的Visible属性,当攻击特效触发时,当前节点才会显示
设置上一个节点的子节点Text0,增加自定义属性LP,用于控制当前节点位置,Text属性显示状态。
根据LP属性判断自身变化
设置Text1属性的自定义属性LP,与Text0同理
Text属性这里设置不同于Text0,绑定到BOSS的LP属性
Visible属性同理Text0的Visible属性设置
设置B_Rastart的Clicked事件,实线重新开始游戏功能,跳转到场景1,并重置英雄的生命值、要是、关卡值;
设置B_Main节点的Clicked事件,同理B_Rastart节点设置,只不过把关卡值设置为0(游戏开始界面)
设置Restore_Op节点的Clicked事件,把节点的Opacity属性设置为1。
小结:
本次游戏项目截止到这已经全部更新完成了,收获颇多不仅仅对于表达式的理解,还有一些设计思路:逻辑的设计、工程节点应该怎么样设置、资源的设置,工程的前期准备工作如何做……
因为本次工程用了大量的表达式,所以对于表达式的理解又有了不同的认知
下一篇文章更新:数据类Plugin方向