Cocos2d-x CocosBase 场景管理解决方案

来源:未知 责任编辑:责任编辑 发表时间:2014-01-20 07:51 点击:

CocosBase是基于Cocos2d-x移动跨平台游戏引擎的一套场景管理、消息管理、事件管理等开源解决方案


CocosBase的出现,完全改善了引擎场景管理上的不足与缺陷,与引擎本身也是完美结合。对于本身需求有二次封装的团队是一种标准解决方案。CocosBase改善了引擎场景切换的方式与定义,使之更方便简洁,拓展性更强。增加了消息广播机制,触摸事件优先级管理机制,接下来Viva将逐步介绍。


场景管理改善:


与引擎本身不同的是,CocosBase拓展了NotificationNode接口,使游戏本身由1个渲染树(Scene渲染树)变为2个渲染树:

基础场景渲染树(Scene渲染树)

悬浮场景渲染树(NotificationNode渲染树)


分为两条渲染树的理由:


在一般的rpg游戏里,大可抽象场景为游戏场景与UI场景,

游戏场景富含了所有游戏的内容玩家、npc、怪物等等。

UI场景则可以理解为背包系统、强化系统、好友系统等等。

为了把两种场景类型抽象出来分别处理,则出现了上文所说的两条渲染分支。

悬浮场景将永远呈现在基础场景之上,悬浮场景的切换不会影响基础场景,基础场景的切换也同样不会影响悬浮场景


如果2条渲染树让大神您觉得很不爽,那您完全可以只用一条渲染树(相当于引擎本身的方式)


管理基础场景渲染树的接口:

public:
	// 运行场景
	void runWithScene(CCScene* pScene);
	// 替换栈顶场景
	void replaceScene(CCScene* pScene);
	// 场景入栈
	void pushScene(CCScene* pScene);
	// 场景出栈
	void popScene();
	// 连续出栈到栈底
	void popToRootScene();
	// 连续出栈到指定等级 等级为零将退出游戏
	void popToSceneStackLevel(int nLevel);

管理悬浮场景渲染树的接口:

public:
	// 替换栈顶悬浮场景
	void replacePopupScene(CCScene* pScene);
	// 悬浮场景入栈
	void pushPopupScene(CCScene* pScene);
	// 悬浮场景出栈
	void popPopupScene();
	// 连续出栈到栈底
	void popToRootPopupScene();
	// 连续出栈到指定等级 等级为零将关闭所有悬浮场景
	void popToPopupSceneStackLevel(int nLevel);


关于引擎提供的场景的切换动画(CCTransitionScene) 目前只有基础场景支持切换动画,如果大神您非要悬浮场景也支持,那Viva给您提供一个方案去实现,可以在悬浮场景的onEnter与onEnterTransitionDidFinish这两个回调函数里去做些事情。



场景扩展类介绍

目前在2dx2.0版本里扩展场景类名:CCSceneEx


基础场景与悬浮场景的定义,都需要从CCSceneEx继承而来。

CCSceneEx API:


onLoadResources()

当场景被初次创建时 在此方法内部初始化场景所需要的资源
目前支持图片的加载
同步方式:addImage()
异步方式:addImageAsync()
当所有资源成功加载后 会调用onLoadResourcesCompleted
仅初始化时回调一次


onLoadResourcesCompleted()

当场景内的资源被成功加载后 回调此方法
同步加载后立即回调 如果存在异步方式
则异步加载完成后回调
仅初始化时回调一次


onLoadScene()

场景资源加载完成后会调用此接口 用于
初始化场景内所有元素
仅初始化时回调一次


isCachable()

覆盖此函数来指定本场景是否缓存


getExtraObject()

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1