游戏中除了开始和结束的栏,当然还要有普通的黑白块行拉。
在HelloWorldScene.h文件中声明addNormalLine函数
//添加普通的黑白块栏 void addNormalLine(int lineIndex);因为游戏中我们要触摸普通黑白块儿,所以我们添加了一个lineIndex参数,是为了方便后面的触摸逻辑。
来看一下我们具体如何实现addNormalLine函数
//添加普通的黑白块栏 void HelloWorld::addNormalLine(int lineIndex) { Block *b; int blackIndex = rand()%4; for(int i=0; i<4; i++) { b = Block::createWithArgs(blackIndex == i ? Color3B::BLACK : Color3B::WHITE, Size(visibleSize.width/4-1,visibleSize.height/4-1), "", 20, Color4B::BLACK); b->setPosition(i*visibleSize.width/4, lineIndex*visibleSize.height/4); b->setLineIndex(lineIndex); addChild(b); } }我们随机产生一个黑色块标记blackIndex,如果blackIndex刚好等于i,就显示为黑块,否则显示为白块。所以,我们能得到每一行都有一个黑块。并且都每一行都标记了lineIndex,方便后续的触摸事件。
既然要得到和设置lineIndex的指,那么就要有相关的函数。在Block.cpp中来具体实现
void Block::setLineIndex(int index) { this->lineIndex = index; } int Block::getLineIndex() { return this->lineIndex; }
我们另外写了一个函数,来实现开始游戏
//开始游戏 void HelloWorld::startGame() { addStartLine(); addNormalLine(1); addNormalLine(2); addNormalLine(3); }在这函数里面,添加了游戏黄色栏,然后添加了三栏普通黑白块栏。
运行项目后,效果如下: