void GameplayScene::loadMapFromFile(std::string filePath) { std::string type; int pos_x,pos_y; std::ifstream file; file.open(filePath.c_str()); if( !file.good() ) return; while(1){ file>>type; file>>pos_x; file>>pos_y; if (file.eof()) break; if(type=="Brick"){ Brick *brick = new Brick(this,resourceManager.getTextureFromMap("Brick")); brick->setPosition(pos_x,pos_y); addEntity(brick); ball->addCollisionMaker(brick); this->entitiesLeft++; } if(type=="SolidBrick"){ SolidBrick *solidBrick = new SolidBrick(this,resourceManager.getTextureFromMap("SolidBrick")); solidBrick->setPosition(pos_x,pos_y); addEntity(solidBrick); ball->addCollisionMaker(solidBrick); this->entitiesLeft++; } if(type=="Barrier"){ Barrier *barrier = new Barrier(this,resourceManager.getTextureFromMap("Barrier")); barrier->setPosition(pos_x,pos_y); addEntity(barrier); ball->addCollisionMaker(barrier); } } file.close(); }
void GameScene::addTower(Vec2 pos) { Barrier* barrier = Barrier::create("tower.png", 5, 2); barrier->setPosition(pos.x,pos.y+60); float time = (pos.y+60)/winsize.height*20; auto moveAct = MoveTo::create(time, Vec2(pos.x,ENEMY_MIN_POS)); auto funcAct = CallFuncN::create(CC_CALLBACK_1(GameScene::removeBarrier, this)); barrier->runAction(Sequence::create(moveAct,funcAct, NULL)); barrierVec.push_back(barrier); addChild(barrier,Game_Layer_Tank); }