首先呢,先说说导演、场景、层、精灵的关系,一个场景里面包含图层,就是说层可以加载到场景当中,层上面又可以有很多精灵,这些精灵的移动、消失等动作构成了游戏的主要部分,一个游戏可能不仅仅只有一个场景,但是有且仅有一个导演的存在,这个存在且唯一的导演控制着整个游戏的流程。创建背景的通用三部曲:场景的创建、层的创建、精灵的创建(别忘记将层加入场景、将精灵计入层中)
//创建Scene
auto
scene = Scene::create();
//创建层
auto
layer = HelloWorld::create();
//把层加入场景中
scene->addChild(layer);
//创建一个精灵
auto
sprite = Sprite::create(
"HelloWorld.png"
);
//把精灵加到层里
layer->addChild(sprite, 0);
言归正传,我的项目中涉及到的背景创建代码如下:
switch (BGI_Number) {
case 1:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
case 2:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
case 3:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
case 4:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
case 5:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
default:
break;
}
case 1:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
case 2:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
case 3:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
case 4:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
case 5:
Image_One = Sprite::create(strName);
Image_Two = Sprite::create(strName);
break;
default:
break;
}
看了也许会有些不理解,不是说加背景吗?怎么一下出来了5个,其实方法就是三部曲,为了避免游戏过于无聊,可以利用C++中的随机函数、%取余和Swich语句实现多个背景的随机出现。