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!!!我变的很有钱~~~~~~~~~~~~