Time for action – creating SpriteBatchNode
Let's begin implementing the createGameScreen
method in GameLayer.cpp
. Just below the lines that add the bg
sprite, we instantiate our batch node:
void GameLayer::createGameScreen() { //add bg auto bg = Sprite::create("bg.png"); ... SpriteFrameCache::getInstance()-> addSpriteFramesWithFile("sprite_sheet.plist"); _gameBatchNode = SpriteBatchNode::create("sprite_sheet.png"); this->addChild(_gameBatchNode);
In order to create the batch node from a sprite sheet, we first load all the frame information described by the sprite_sheet.plist
file into SpriteFrameCache
. And then we create the batch node with the sprite_sheet.png
file, which is the source texture shared by all sprites added to this batch node. (The background image is not part of the sprite sheet, so it's added separately before we add _gameBatchNode
to GameLayer.)
Now we can start putting stuff inside _gameBatchNode
.
First, the city:
for (int i = 0; i < 2; i++) { ...