void GameObjMap::AddStar() { m_arrStars1 = Array::create(); m_arrStars2 = Array::create(); for (int i = 0; i < 5; i++) { GameObjStar* obj = new GameObjStar(); obj->setPosition(ccp(172 + 192 * i, 350)); m_arrStars1->addObject(obj); m_pBg1->addChild(obj, 3); GameObjStar* obj1 = new GameObjStar(); obj1->setPosition(ccp(172 + 192 * i, 350)); m_arrStars2->addObject(obj1); m_pBg2->addChild(obj1, 3); } m_arrStars1->retain(); m_arrStars2->retain(); }
// 计时器更新函数 void GameMain::update(float time){ if(hero->state == 0){ // 判断主角在奔跑的过程中,是否掉到没有路的位置了 isherodrop(); } if(1){ // 判断是否顶到星星了 Size size = Director::getInstance()->getVisibleSize(); float fHeroWidth = hero->getContentSize().width; Point p1 = (map->getChildByTag(0))->getPosition(); Point p2 = (map->getChildByTag(1))->getPosition(); for(int i = 0;i < 5;i ++){ if(p1.x <= fHeroWidth && (p1.x + size.width) >= fHeroWidth){ // 主角在地图1范围内 GameObjStar *obj = (GameObjStar *)(map->stars1).at(i); if(obj->get_visable() && isCollion(Point(200, hero->getPosition().y + 62.5), Point(p1.x + 86 + 96 * i, 460), 40, 35, 18.25, 17.75)){ obj->set_visable(false); gamemark->addnumber(200); } }else{ // 主角在地图2范围内 GameObjStar *obj = (GameObjStar *)(map->stars2).at(i); if(obj->get_visable() && isCollion(Point(200, hero->getPosition().y + 62.5), Point(p2.x + 86 + 96 * i, 460), 40, 35, 18.25, 17.75)){ obj->set_visable(false); gamemark->addnumber(200); } } } } }
void GameMain::update(float time){ if(hero->state == 0) isherodrop(); Point p1 = (map->getChildByTag(0))->getPosition(); Point p2 = (map->getChildByTag(1))->getPosition(); for(int i = 0;i < 5;i ++){ if(p1.x <= 100 && (p1.x + 480) >= 100){ GameObjStar *obj = (GameObjStar *)(map->stars1).at(i); if(obj->get_visable() && isCollion(Point(100,hero->getPosition().y + 62.5),Point(p1.x + 86 + 96 * i,280),40,35,18.25,17.75)){ obj->set_visable(false); gamemark->addnumber(200); } }else{ GameObjStar *obj = (GameObjStar *)(map->stars2).at(i); if(obj->get_visable() && isCollion(Point(100,hero->getPosition().y + 62.5),Point(p2.x + 86 + 96 * i,280),40,35,18.25,17.75)){ obj->set_visable(false); gamemark->addnumber(200); } } } }
void GameMainLayer::update(float time) { if (hero->state == 0) this->isHeroDrop(); CCPoint pos1 = (map->getChildByTag(0))->getPosition(); CCPoint pos2 = (map->getChildByTag(1))->getPosition(); //检测主角是否吃到星星 for (int i = 0; i < 5; i++) { if (pos1.x <= 100 && (pos1.x + 480) >= 100) { GameObjStar *star = (GameObjStar *)(map->stars1)->objectAtIndex(i); if (star->get_visible() && isCollision(ccp(100,hero->getPosition().y + 62.5), ccp(pos1.x + 86 + 96*i, 280), 40, 35, 18.25, 17.75)) { star->set_visible(false); gameMark->addNumber(100); } } else { GameObjStar *star = (GameObjStar *)(map->stars2)->objectAtIndex(i); if (star->get_visible() && isCollision(ccp(100,hero->getPosition().y + 62.5), ccp(pos2.x + 86 + 96*i, 280), 40, 35, 18.25, 17.75)) { star->set_visible(false); gameMark->addNumber(100); } } } }
void GameObjMap::onEnter(){ CCNode::onEnter(); Size size = Director::getInstance()->getVisibleSize(); this->setContentSize(Size(960,320)); Sprite* bg1 = Sprite::create("back_1.png"); //bg1->setScale(0.5); bg1->setAnchorPoint(Point(0,1)); bg1->setPosition(Point(0, size.height / 2) ); this->addChild(bg1,0,0); Sprite* bgdi1 = Sprite::create("back_5.png"); bgdi1->setAnchorPoint(Point(0,0)); bgdi1->setPosition(Point(0,-124) ); bg1->addChild(bgdi1,1); Sprite* bg2 = Sprite::create("back_1.png"); //bg2->setScale(0.5); bg2->setAnchorPoint(Point(0,1)); bg2->setPosition(Point(size.width, size.height / 2) ); this->addChild(bg2,0,1); Sprite* bgdi2 = Sprite::create("back_5.png"); bgdi2->setAnchorPoint(Point(0,0)); bgdi2->setPosition(Point(0,-124) ); bg2->addChild(bgdi2,1); bg1->runAction(CCSequence::create(MoveBy::create(10,Point(-960,0)), CallFuncN::create(CC_CALLBACK_1(GameObjMap::bg1change,this)), NULL)); bg2->runAction(CCSequence::create(MoveBy::create(20,Point(-1920,0)), CallFuncN::create(CC_CALLBACK_1(GameObjMap::bg2change,this)), NULL)); stars1 = __Array::create(); stars2 = __Array::create(); for(int i = 0;i < 5;i ++){ GameObjStar* obj = new GameObjStar(); obj->setPosition(Point(172 + 192 * i,350)); stars1->addObject(obj); bg1->addChild(obj,3); obj = new GameObjStar(); obj->setPosition(Point(172 + 192 * i,350)); stars2->addObject(obj); bg2->addChild(obj,3); } stars1->retain(); stars2->retain(); for(int i = 0;i < 7;i ++){ Sprite* roaddi; Sprite* plant; if(bg1shu[i] != -1){ Sprite* road; switch(bg1shu[i]){ case 0: plant = Sprite::create("back_2.png"); plant->setAnchorPoint(Point(0.5,0)); plant->setPosition( Point(128 * i + 64,117) ); bg1->addChild(plant,1); road = Sprite::create("road_2.png"); road->setAnchorPoint(Point(0,0)); road->setPosition( Point(128 * i,0) ); roaddi = Sprite::create("road_3.png"); roaddi->setAnchorPoint(Point(0,1)); roaddi->setPosition( Point(128 * i,0) ); bg1->addChild(roaddi,1); break; case 1: road = Sprite::create("road_1.png"); road->setAnchorPoint(Point(0,0)); road->setPosition( Point(26 + 128 * i,0) ); roaddi = Sprite::create("road_4.png"); roaddi->setAnchorPoint(Point(0,1)); roaddi->setPosition( Point(26 + 128 * i,0) ); bg1->addChild(roaddi,1); break; case 2: plant = Sprite::create("enemy.png"); plant->setAnchorPoint(Point(0.5,0)); plant->setPosition( Point(128 * i + 64,112) ); bg1->addChild(plant,1); road = Sprite::create("road_1.png"); road->setFlippedX(true); road->setAnchorPoint(Point(0,0)); road->setPosition( Point(128 * i,0) ); roaddi = CCSprite::create("road_4.png"); roaddi->setFlippedX(true); roaddi->setAnchorPoint(Point(0,1)); roaddi->setPosition( Point(128 * i,0) ); bg1->addChild(roaddi,1); break; case 3: road = Sprite::create("road_5.png"); road->setAnchorPoint(Point(0,0)); road->setPosition( Point(128 * i,0) ); break; } bg1->addChild(road,1); } if(bg2shu[i] != -1){ Sprite* road1; switch(bg2shu[i]){ case 0: road1 = Sprite::create("road_2.png"); road1->setAnchorPoint(Point(0,0)); road1->setPosition( Point(128 * i,0) ); roaddi = Sprite::create("road_3.png"); roaddi->setAnchorPoint(Point(0,1)); roaddi->setPosition( Point(128 * i,0) ); bg2->addChild(roaddi,1); break; case 1: plant = Sprite::create("back_3.png"); plant->setAnchorPoint(Point(0.5,0)); plant->setPosition( Point(128 * i + 128,117) ); bg2->addChild(plant,1); road1 = Sprite::create("road_1.png"); road1->setAnchorPoint(Point(0,0)); road1->setPosition( Point(26 + 128 * i,0) ); roaddi = Sprite::create("road_4.png"); roaddi->setAnchorPoint(Point(0,1)); roaddi->setPosition( Point(26 + 128 * i,0) ); bg2->addChild(roaddi,1); break; case 2: road1 = Sprite::create("road_1.png"); road1->setFlippedX(true); road1->setAnchorPoint(Point(0,0)); road1->setPosition( Point(128 * i,0) ); roaddi = Sprite::create("road_4.png"); roaddi->setFlippedX(true); roaddi->setAnchorPoint(Point(0,1)); roaddi->setPosition( Point(128 * i,0) ); bg2->addChild(roaddi,1); break; case 3: road1 = Sprite::create("road_5.png"); road1->setAnchorPoint(Point(0,0)); road1->setPosition( Point(128 * i,0) ); break; } bg2->addChild(road1,1); } } state = 0; }
void GameObjMap::onEnter(){ CCNode::onEnter(); CCSize size = CCDirector::sharedDirector()->getWinSize(); this->setContentSize(CCSizeMake(960,320)); //背景初始化 CCSprite* bg1 = CCSprite::create("back_1.png"); bg1->setScale(0.5); bg1->setAnchorPoint(ccp(0,1)); bg1->setPosition(ccp(0, size.height) ); this->addChild(bg1,0,0); CCSprite* bgdi1 = CCSprite::create("back_5.png"); bgdi1->setAnchorPoint(ccp(0,0)); bgdi1->setPosition(ccp(0,-124) ); bg1->addChild(bgdi1,1); CCSprite* bg2 = CCSprite::create("back_1.png"); bg2->setScale(0.5); bg2->setAnchorPoint(ccp(0,1)); bg2->setPosition(ccp(size.width, size.height) ); this->addChild(bg2,0,1); CCSprite* bgdi2 = CCSprite::create("back_5.png"); bgdi2->setAnchorPoint(ccp(0,0)); bgdi2->setPosition(ccp(0,-124) ); bg2->addChild(bgdi2,1); bg1->runAction(CCSequence::create(CCMoveBy::create(10,ccp(-480,0)),CCCallFuncN::create(this, callfuncN_selector(GameObjMap::bg1change)),NULL)); bg2->runAction(CCSequence::create(CCMoveBy::create(20,ccp(-960,0)),CCCallFuncN::create(this, callfuncN_selector(GameObjMap::bg2change)),NULL)); stars1 = CCArray::create(5); stars2 = CCArray::create(5); for(int i = 0;i < 5;i ++){ GameObjStar* obj = new GameObjStar(); obj->setPosition(ccp(172 + 192 * i,350)); stars1->addObject(obj); bg1->addChild(obj,3); obj = new GameObjStar(); obj->setPosition(ccp(172 + 192 * i,350)); stars2->addObject(obj); bg2->addChild(obj,3); } stars1->retain(); stars2->retain(); //星星,植物等大图素的添加 for(int i = 0;i < 7;i ++){ CCSprite* roaddi; CCSprite* plant; if(bg1shu[i] != -1){ CCSprite* road; switch(bg1shu[i]){ case 0: plant = CCSprite::create("back_2.png"); plant->setAnchorPoint(ccp(0.5,0)); plant->setPosition( ccp(128 * i + 64,117) ); bg1->addChild(plant,1); road = CCSprite::create("road_2.png"); road->setAnchorPoint(ccp(0,0)); road->setPosition( ccp(128 * i,0) ); roaddi = CCSprite::create("road_3.png"); roaddi->setAnchorPoint(ccp(0,1)); roaddi->setPosition( ccp(128 * i,0) ); bg1->addChild(roaddi,1); break; case 1: road = CCSprite::create("road_1.png"); road->setAnchorPoint(ccp(0,0)); road->setPosition( ccp(26 + 128 * i,0) ); roaddi = CCSprite::create("road_4.png"); roaddi->setAnchorPoint(ccp(0,1)); roaddi->setPosition( ccp(26 + 128 * i,0) ); bg1->addChild(roaddi,1); break; case 2: plant = CCSprite::create("enemy.png"); plant->setAnchorPoint(ccp(0.5,0)); plant->setPosition( ccp(128 * i + 64,112) ); bg1->addChild(plant,1); road = CCSprite::create("road_1.png"); road->setFlipX(true); road->setAnchorPoint(ccp(0,0)); road->setPosition( ccp(128 * i,0) ); roaddi = CCSprite::create("road_4.png"); roaddi->setFlipX(true); roaddi->setAnchorPoint(ccp(0,1)); roaddi->setPosition( ccp(128 * i,0) ); bg1->addChild(roaddi,1); break; case 3: road = CCSprite::create("road_5.png"); road->setAnchorPoint(ccp(0,0)); road->setPosition( ccp(128 * i,0) ); break; } bg1->addChild(road,1); } if(bg2shu[i] != -1){ CCSprite* road1; switch(bg2shu[i]){ case 0: road1 = CCSprite::create("road_2.png"); road1->setAnchorPoint(ccp(0,0)); road1->setPosition( ccp(128 * i,0) ); roaddi = CCSprite::create("road_3.png"); roaddi->setAnchorPoint(ccp(0,1)); roaddi->setPosition( ccp(128 * i,0) ); bg2->addChild(roaddi,1); break; case 1: plant = CCSprite::create("back_3.png"); plant->setAnchorPoint(ccp(0.5,0)); plant->setPosition( ccp(128 * i + 128,117) ); bg2->addChild(plant,1); road1 = CCSprite::create("road_1.png"); road1->setAnchorPoint(ccp(0,0)); road1->setPosition( ccp(26 + 128 * i,0) ); roaddi = CCSprite::create("road_4.png"); roaddi->setAnchorPoint(ccp(0,1)); roaddi->setPosition( ccp(26 + 128 * i,0) ); bg2->addChild(roaddi,1); break; case 2: road1 = CCSprite::create("road_1.png"); road1->setFlipX(true); road1->setAnchorPoint(ccp(0,0)); road1->setPosition( ccp(128 * i,0) ); roaddi = CCSprite::create("road_4.png"); roaddi->setFlipX(true); roaddi->setAnchorPoint(ccp(0,1)); roaddi->setPosition( ccp(128 * i,0) ); bg2->addChild(roaddi,1); break; case 3: road1 = CCSprite::create("road_5.png"); road1->setAnchorPoint(ccp(0,0)); road1->setPosition( ccp(128 * i,0) ); break; } bg2->addChild(road1,1); } } state = 0; }