void RoundConfig::readSpecJson(const JsonLoader &loader, const Json::Value &obj) { SpecType type; loader.readVal(obj["_type"], &type); switch (type) { case SPEC_BRICK: loader.readVal(obj, &addBrick()); break; case SPEC_BRICK_RING: loader.readVal(obj, &addBrickRing()); break; case SPEC_BRICK_QUADS: loader.readVal(obj, &addBrickQuads()); break; case SPEC_WALL: loader.readVal(obj, &addWall()); break; case SPEC_WALL_RING: loader.readVal(obj, &addWallRing()); break; case SPEC_CURVED_BRICK_COLUMN: loader.readVal(obj, &addCurvedBrickColumn()); break; case SPEC_CURVED_WALL: loader.readVal(obj, &addCurvedWallSet()); break; case SPEC_BALL: { BallSpec spec; loader.readVal(obj, &spec); addBall(spec); break; } case SPEC_MODIFIER: { ModifierSpec spec; loader.readVal(obj, &spec); addModifierDef(spec.name, spec); break; } case SPEC_MESSAGE: { MessageSpec spec; loader.readVal(obj, &spec); addStartMessage(spec); break; } case SPEC_RING_SET: loader.readVal(obj, &addRingSet()); break; case SPEC_UNKNOWN: default: //... break; } }
GameLayer::GameLayer() { //TODO... //create game including loading game data from file, CCSprite* background = CCSprite::create("gfx/nukeback.png"); addChild(background); float xBck = (GameAreaDef::getBallMoveRect().getMaxX()+GameAreaDef::getBallMoveRect().getMinX())/2; float yBck = (GameAreaDef::getBallMoveRect().getMaxY()+GameAreaDef::getBallMoveRect().getMinY())/2; background->setPosition(ccp(xBck, yBck)); background->setScaleY(1.75); m_ballVelocity = ccp(40.0f, -400.0f); m_ball = Ball::ballWithTexture(CCTextureCache::sharedTextureCache()->addImage("gfx/balls.png"), CCRectMake(0,0,12,12)); m_ball->setVelocity(m_ballVelocity); m_ball->setPosition(ccp(120, 120)); addChild(m_ball); m_ball->retain(); //release from GameDirector GameDirector::sharedGameDirector()->addBall(m_ball); CCTexture2D* paddleTexture = CCTextureCache::sharedTextureCache()->addImage("gfx/paddle.png"); m_paddle = Paddle::paddleWithTexture(paddleTexture); m_paddle->setTextureRect(CCRectMake(0,0,54,18)); m_paddle->setPosition(ccp(54, 20)); addChild(m_paddle); m_paddle->retain(); GameDirector::sharedGameDirector()->addPaddle(m_paddle); /* CCTexture2D* brickTexture = CCTextureCache::sharedTextureCache()->addImage("gfx/bricks.png"); m_brick = Brick::createBrick(brickTexture); m_brick->setBrickStatu(BRICK_GREEN); m_brick->setPosition(ccp(100, 200)); addChild(m_brick); m_brick->retain(); //release from GameDirector GameDirector::sharedGameDirector()->addBrick(m_brick); */ for (int i = 0; i < 5; i++) { addBrick(ccp(100+60*i, 600)); } schedule(schedule_selector(GameLayer::update)); }