Cocos Creator 上手记录 三

# 场景的加载与切换

在cocos中,默认只会运行一个场景,其他的场景当不再运行时,所有的节点与资源都将会被自动销毁

1.  进入场景与切换场景用loadScene()方法执行,例如:  

// home为我们创建场景的文件名(不带后缀), 函数会自动索引相应的场景文件并加载所需的资源文件

cc.director.loadScene('home');

2. 有时,我们会用到预加载场景,让我们的游戏进入下一个场景更为流畅,更为迅速。 可以使用proloadScene()方法, 例如

cc.director.proloadScene('game', function(){

console.log('gameScene is proloaded');

});

然后我们只需再运行 cc.director.loadScene('game')方法, 即可快速打开下一个场景。

3. 当我们切换场景时, 所有的节点和资源都会销毁,那么我们如何进行场景之间的数据交互呢,我们可以利用常驻节点来完成。

常驻节点:表示此节点不会在随着场景的销毁而销毁,会一直保留下去,直到手动回收或销毁

创建一个常驻节点:

cc.director.addPersistRootNode(cc.Node);

这样, cc.Node就变成了一个常驻节点, 挂载在此节点下的数据就不会随着场景的销毁而销毁, 我们可以用来存储一些常用到的信息如RoleInfor等。

我们还可以注销一个常驻节点:

cc.director.removePersistRootNode(cc.Node);

**注意** 此API不会直接销毁此节点,而是将节点从常驻节点变为普通节点,会随着场景的销毁而销毁。

4. 我们还可以在loadScene方法中添加回调函数,用于加载完场景后处理数据,如:

cc.director.loadScene('home', this.getUserInfor);

// this.getUserInfor方法用来获取玩家信息

由于回调方法只能写在本脚本之中,会随着场景销毁而注销,所以我们一般将回调方法写在常驻节点的脚本中,用来进一步的初始化场景或者传递数据。

你可能感兴趣的:(Cocos Creator 上手记录 三)