什么是场景?
场景是包含精灵(Sprites),标签(Labels),节点(Nodes)和其他游戏所需对象的容器。场景负责游戏逻辑的运行和游戏内容的逐帧渲染。每个游戏至少需要一个场景,你可以将场景想象成一部电影,场景就是其中正在运行并且用户可以实时看到的电影画面。游戏中可以拥有多个场景,并且可以在多个不同的场景之间自然的切换。Cocos2d-x提供了多种场景切换效果,你甚至可以使用超酷的切换效果。
创建场景
创建场景很简单:
1
|
auto myScene = Scene::create();
|
还记得在第二章中我们讲过的场景图部分吗?以及它是如何实现游戏的绘制的?其实最重要的是一定要记住定义好GUI元素的绘制顺序以及z-order。
场景使用范例
下面让我们创建一个简单的场景。cocos2d-x使用右手坐标系系统,也就是屏幕和显示位置的原点(0,0)在左下角,我们的游戏元素给出的坐标是相对于原点计算出来的相对坐标。如下我们创建一个简单的场景,然后加入几个元素:
@H_403_37@
1
auto dirs = Director::getInstance();
Size visibleSize = dirs->getVisibleSize();
auto scene1 = Scene::create();
auto label1 = Label::createWithTTF(
"My Game"
,
"Marker Felt.ttf"
,36);
label1->setPosition(Vec2(visibleSize.width / 2,visibleSize.height / 2));
scene->addChild(label1);
auto sprite1 = Sprite::create(
"mysprite.png"
);
sprite1->setPosition(Vec2(100,100));
scene->addChild(sprite1);
|