Advertisement

Cocos2dx <基础> 核心概念 (1)

阅读量:

Cocos2dx作为一个游戏框架。其中游戏中的视觉部分由场景,层,精灵组成。

导演: 游戏框架的核心执行者,在软件系统中负责一系列关键操作:处理场景切换、启动游戏流程以及完成游戏退出流程。这些操作分别对应于软件运行的初始状态和最终状态。

Cocos2dx中的导演类是Director。

其中导演类常用的功能:

1. 获得导演类对象: auto director = Director::getInstance();

2. 打开或者关闭FBS: Director::getInstance()->setDisplayStates(true);

3. 设置刷新频率: Director::getInstance()->setAnimationInterval(1.0/60);

4. 某一个场景: Director::runWithScene(Scene);

5. 退出游戏: Director::getInstance()->end();

6. 暂停游戏: Director::getInstance()->pause(); 当尝试暂停游戏时, 仍然会渲染画面, 但会阻止所有动作执行, 同时影响游戏的效果以及定时器机制. 帧率将降至4FPS, 并从而节省电力和内存资源.

7. 返回游戏: Director::getInstance()->resume();

8. 获得屏幕大小: Director::getInstance()->getVisibleSize();

b. 场景: 相当于舞台剧中的一幕。场景相当于容器,存放需要渲染的层。

场景切换: 由A场景切换到B场景,游戏中非常常见。

场景的由来: 在内存管理方面,在将游戏中的图片资源加载至游戏菜单界面时(即将其放入内存),当切换到新的game interface时(即重新呈现新的画面),系统通常会清除之前的游戏菜单相关资源以释放内存空间

重新加载运行中的游戏以获取其图片资源,并将这些信息存储起来以便后续使用。如何有效地释放或销毁这些图片资源?通过引入场景机制,在销毁场景时能够同步清理相关的游戏资源。

Cocos2dx 中的场景采用栈形式进行管理, 通过优化内存占用, 最好确保每个栈仅包含一个场景

场景切换的两种方式: (1) replaceScene() (2) pushScene() popScene()

(1) replaceScene() -----> 会将原来的场景销毁,创建新的场景

(2) pushScene()-----> 将场景压入栈中,显示栈顶的场景;不用场景利用popScene()

建议采用replaceScene()函数进行操作

以pushScene和popScene()的方式,在切换场景时速度极快地执行操作的同时

复制代码
   Direcotr::getInstance()->replaceScene(NewSccene);

    
   Director::getInstance()->popScene();
    
   Direcotr:;getInstance()->pushScene(NewScene);
    
    
    
    
    html

c. 层: 容器,存放游戏中的元素,如精灵和菜单

注意: 尽量少使用场景,多使用合理的层;

不用添加无用的层, Cocos2dx的渲染使用Opengl的,会对性能有影响的。

全部评论 (0)

还没有任何评论哟~