egret单例模式场景切换

egret入门单例模式场景切换讲解

一:简介

小弟近日接触egret游戏引擎,只要是为了自己熟练运用和巩固复习,希望能为入门小白引路。
小弟也不大熟悉egret游戏引擎,如有不到位之处请大牛指教。
小弟只讲解最最最基本的内容,详情请根据实际情况。

二:egret场景切换讲解

小弟并没用在egret中找到相关跳转场景的API,所以引用网上查找的单例模式场景切换;
熟悉的请点击这里

小弟在此中删除了一些自认为不重要的代码,如有不满请不要对小弟发泄!
哈哈哈哈哈哈哈!!!

abstract class Scene extends eui.Component{
    public constructor() {
        super();
	}
}

absstract将这个类设置为虚类,在子类中实现继承。

class SceneManager {
    private static _manager:SceneManager;
    public static get Instance(){
        if( SceneManager._manager==null){
            SceneManager._manager = newSceneManager();
        }
        return SceneManager._manager;
    }
    public constructor() {
    }
}

创建场景管理类,实现单例模式,保证场景管理类只有一个实例。

public rootLayer:eui.UILayer;//起始场景
private currentScene:Scene;//需要显示的场景
private pop_scene:Scene;//弹出场景层

这里请注意rootLayer应用,请在Main.ts的createGameScene()中:

SceneManager.Instance.rootLayer = this;

切换场景方法的写法如下,在rootLayer上进行移除和添加:

//切换场景
	    public changeScene(s:Scene){
	        if(this.currentScene){
	           this.rootLayer.removeChild(this.currentScene);
	            this.currentScene = null;
	        }
	        this.rootLayer.addChild(s);
	        this.currentScene = s;
	    }

弹出与关闭场景层与上类似是,在rootLayer上进行移除和添加:

//弹出场景层
    public pushScene(s:Scene){
        this.popScene();
        if(!this.pop_scene){
            this.rootLayer.addChild(s);
            this.pop_scene = s;
        }
    }
    //关闭场景层
    public popScene(){
        if(this.pop_scene){
            this.rootLayer.removeChild(this.pop_scene);
            this.pop_scene = null;
        }
    }

其他添加eui等相关操作请继承Scene类,实现其相关方法即可。
在eui类中使用下列方法:
切换场景方法:

let s1:StartScene =  new StartScene();
SceneManager.Instance.changeScene(s1);

弹出场景层方法
在对应的点击事件中调用pushScene()方法。

let tc:Tanchu = new Tanchu();
SceneManager.Instance.pushScene(tc);//添加场景弹出层

如果需要关闭弹出场景层,在弹出场景层的类中调用popScene()方法。

SceneManager.Instance.popScene();//移除场景层

总结告白

睡觉了,“放下屠刀,一心向邪”,请好好努力,拥有更美好的未来。
如果!!!v!!!有一天!!!w!!!我变的很有钱~~~~~~~~~~~~

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值