|
@@ -13,10 +13,16 @@ export default class InGameView extends ui.InGameSceneUI implements SC{
|
|
|
// public FallDownLine:number = 500;
|
|
|
//本关卡
|
|
|
public STAGE:number;
|
|
|
+ //是否弹出失败界面
|
|
|
+ public LoseView = false;
|
|
|
constructor(){
|
|
|
super();
|
|
|
InGameView.ins = this;
|
|
|
EventManager.StageOn(StageMode.Clone,this,this.AddPrefab);
|
|
|
+ EventManager.StageOn(StageMode.Win,this,this.Win);
|
|
|
+ EventManager.StageOn(StageMode.Lose,this,this.Lose);
|
|
|
+ EventManager.StageOn(StageMode.ReStart,this,this.ReStart);
|
|
|
+ // EventManager.StageOn(StageMode.Lose,this,this.)
|
|
|
}
|
|
|
public static get Instance():InGameView{
|
|
|
if(InGameView.ins){
|
|
@@ -29,13 +35,13 @@ export default class InGameView extends ui.InGameSceneUI implements SC{
|
|
|
Show(){
|
|
|
let stage = AccountManager.Instance.curplayerData.GainAccount("stage");
|
|
|
this.STAGE = Number(stage);
|
|
|
- Laya.timer.once(200,this,()=>{
|
|
|
- this.SkillRefresh();
|
|
|
- })
|
|
|
+
|
|
|
+ Laya.timer.once(200,this,this.SkillRefresh)
|
|
|
Laya.timer.frameLoop(2,this,this.CheckHeight);
|
|
|
Laya.timer.frameLoop(1,this,this.Progress);
|
|
|
+ Laya.timer.frameLoop(100,this,this.CheckLose);
|
|
|
+ Laya.timer.frameLoop(500,this,this.SkillAnimation);
|
|
|
this.ScoreRefresh();
|
|
|
- this.SkillAnimation();
|
|
|
|
|
|
this.arrowbtn.clickHandler = new Laya.Handler(this,this.ClickArrow);
|
|
|
this.zhunxin1btn.clickHandler = new Laya.Handler(this,this.ClickZhunXin1);
|
|
@@ -65,9 +71,25 @@ export default class InGameView extends ui.InGameSceneUI implements SC{
|
|
|
let num = GameTools.RandomANumber(2,4);
|
|
|
GamePool.Instance.FallDown(num);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
-
|
|
|
+ //检测是否游戏失败
|
|
|
+ CheckLose(){
|
|
|
+ if(!this.LoseView){
|
|
|
+ let lose = true;
|
|
|
+ for (let i = 0; i < this.prefabbox.numChildren; i++) {
|
|
|
+ let ball = this.prefabbox.getChildAt(i) as Laya.Image;
|
|
|
+ let light = ball.getChildByName("light") as Laya.Image;
|
|
|
+ if(light.visible){
|
|
|
+ lose = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(lose){
|
|
|
+ this.LoseView = true;
|
|
|
+ EventManager.StageTrigger(StageMode.Lose);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
//开局刷新一下过关要求
|
|
|
ScoreRefresh(){
|
|
|
let level = JsonManager.Level;
|
|
@@ -96,27 +118,25 @@ export default class InGameView extends ui.InGameSceneUI implements SC{
|
|
|
this.ani5.play(null,false);
|
|
|
}
|
|
|
//技能图标动画效果
|
|
|
- SkillAnimation(){
|
|
|
- Laya.timer.frameLoop(500, this, () => {
|
|
|
- let random = GameTools.RandomANumber(1, 6);
|
|
|
- switch (random) {
|
|
|
- case 1:
|
|
|
- this.ani1.play(null, false);
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- this.ani2.play(null, false);
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- this.ani3.play(null, false);
|
|
|
- break;
|
|
|
- case 4:
|
|
|
- this.ani4.play(null, false);
|
|
|
- break;
|
|
|
- case 5:
|
|
|
- this.ani5.play(null, false);
|
|
|
- break;
|
|
|
- }
|
|
|
- })
|
|
|
+ SkillAnimation() {
|
|
|
+ let random = GameTools.RandomANumber(1, 6);
|
|
|
+ switch (random) {
|
|
|
+ case 1:
|
|
|
+ this.ani1.play(null, false);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ this.ani2.play(null, false);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ this.ani3.play(null, false);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ this.ani4.play(null, false);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ this.ani5.play(null, false);
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
//比例
|
|
|
private get Ratio():number{
|
|
@@ -133,8 +153,8 @@ export default class InGameView extends ui.InGameSceneUI implements SC{
|
|
|
if(GameManager.Instance.ScoreProgress>Number(this.RequireScore.text)){
|
|
|
GameManager.Instance.ScoreProgress = Number(this.RequireScore.text);
|
|
|
this.NowScore.text = GameManager.Instance.ScoreProgress.toString();
|
|
|
- // EventManager.StageTrigger(StageMode.Win);
|
|
|
- // return
|
|
|
+ EventManager.StageTrigger(StageMode.Win);
|
|
|
+ return
|
|
|
}
|
|
|
this.NowScore.text = GameManager.Instance.ScoreProgress.toString();
|
|
|
}
|
|
@@ -280,7 +300,47 @@ export default class InGameView extends ui.InGameSceneUI implements SC{
|
|
|
this.EffectBtn.clickHandler = null;
|
|
|
EventManager.PropState = PropEffecf.NONE;
|
|
|
}
|
|
|
-
|
|
|
+ //清除舞台上的球
|
|
|
+ ClearStage(){
|
|
|
+ let num = 0;
|
|
|
+ for (let i = this.prefabbox.numChildren-1; i > -1; i--) {
|
|
|
+ let ball = this.prefabbox.getChildAt(i) as Laya.Image;
|
|
|
+ Laya.timer.clearAll(ball);
|
|
|
+ let _rig = ball.getComponent(Laya.RigidBody) as Laya.RigidBody;
|
|
|
+ let _collider = ball.getComponent(Laya.CircleCollider) as Laya.CircleCollider;
|
|
|
+ _collider.enabled = false;
|
|
|
+ _rig.enabled = false;
|
|
|
+ ball.removeSelf();
|
|
|
+ ball.destroy();
|
|
|
+ num++;
|
|
|
+ }
|
|
|
+ //清除碰撞器
|
|
|
+ this.ClearCollider(this.BottomCollider);
|
|
|
+ this.ClearCollider(this.RightCollider);
|
|
|
+ this.ClearCollider(this.LeftCollider);
|
|
|
+ }
|
|
|
+ //游戏胜利
|
|
|
+ Win(){
|
|
|
+ Laya.timer.clear(this,this.CheckHeight);
|
|
|
+ }
|
|
|
+ //游戏失败
|
|
|
+ Lose(){
|
|
|
+ Laya.timer.clear(this,this.CheckHeight);
|
|
|
+ }
|
|
|
+ //舞台重置
|
|
|
+ ReStart(){
|
|
|
+ this.ClearStage();
|
|
|
+ }
|
|
|
+ //清除碰撞器
|
|
|
+ ClearCollider(_node:Laya.Image){
|
|
|
+ let collier = _node.getComponent(Laya.ChainCollider) as Laya.ChainCollider;
|
|
|
+ let rig = _node.getComponent(Laya.RigidBody) as Laya.RigidBody;
|
|
|
+ collier.enabled = false;
|
|
|
+ rig.enabled = false;
|
|
|
+ _node.removeSelf();
|
|
|
+ _node.destroy();
|
|
|
+ }
|
|
|
+
|
|
|
Close(){
|
|
|
|
|
|
}
|