示例#1
0
void Physics::addStage0(void) {
  addGround("ground", 0, 0, 0, 0, 8000, 0, 8000, KILLBOX);
  addGoal("goal", -60, 845, 3640, 0);
  addWall("wall0", 0, 440, 0, 0, 80, 40, 120);   // start
  addWall("wall1", 0, 520, 160, 0, 80, 40, 40);  // stairs 1
  addWall("wall2", 0, 600, 240, 0, 80, 40, 40);
  addWall("wall3", 0, 680, 360, 0, 80, 40, 80);
  addWall("wall4", 0, 680, 1080, 0, 240, 40, 240);  // platform 1
  addWall("wall5", -520, 600, 1160, 0, 40, 40, 80);
  addWall("wall6", -760, 400, 1640, 0, 40, 80, 40);
  addWall("wall7", -1080, 480, 2000, 0, 80, 20, 80);
  addWall("wall8", -920, 560, 2160, 0, 20, 20, 120);
  addWall("wall9", -800, 640, 2280, 0, 40, 30, 40);
  addWall("wall10", -880, 720, 1880, 0, 40, 20, 80);
  addWall("wall11", -880, 780, 1760, 0, 40, 40, 40);
  addWall("wall12", -720, 880, 2200, 45, 80, 20, 320, CHECKPOINT); // end of jump puzzle 1
  addWall("wall12_2", -230, 940, 2200, 0, 15, 10, 40);
  addWall("wall12_3", -170, 1020, 2140, 0, 15, 10, 40);
  addWall("wall12_4", -110, 1090, 2080, 0, 15, 10, 40);
  addWall("wall12_5", -50, 1160, 2210, 0, 15, 10, 40, CHECKPOINT);
  addWall("wall12_6", -10, 900, 1880, 0, 15, 10, 40);
  addWall("wall12_7", -40, 750, 1480, 0, 50, 5, 50);
  addWall("wall12_8", 30, 1250, 2280, 0, 32, 20, 25);
  addWall("wall12_9", 60, 1450, 2500, 0, 80, 20, 50);
  addWall("wall13", -160, 715, 3240, 0, 120, 10, 120); // platform on other side of wall
  addWall("wall14", 96, 390, 2690, 0, 804, 400, 50);   // Big Wall Bottom
  addWall("wall15", 100, 1190, 2680, 0, 800, 400, 40); // Big Wall Top
  addWall("wall16", -60, 795, 3640, 0, 100, 10, 100); // End?
  jumping = true;
}
示例#2
0
	void HillsideBattleground::loadGround()
	{
		GameElement*ground;
		
		ground = new GameElement(0,70);
		ground->addAnimation(new Animation("normal",1,"Images/Game/Stages/HillsideBattleground/ground.png"));
		ground->changeAnimation("normal", FORWARD);
		addGround(ground);
	}
示例#3
0
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }
	this->screenSize = CCDirector::sharedDirector()->getVisibleSize();
 
	this->down_bar = NULL;
	score = 0;
	this->Xdownbar = 0;
	this->Xbird = 0;
	barTag = 0;

	//加载PLIST
	this->cache = CCSpriteFrameCache::sharedSpriteFrameCache();
	this->cache->addSpriteFramesWithFile("flappy_packer.plist","flappy_packer.png");


	CCSprite *startgame = CCSprite::createWithSpriteFrameName("getready.png");
	startgame->setPosition(ccp(this->screenSize.width/2,this->screenSize.height/2+300));
	addChild(startgame,1);


	//CCMenuItemImage *startgameItemImage = CCMenuItemImage::create("start.png","start.png",this,menu_selector(HelloWorld::gameEndCallback));
	CCMenuItemSprite  *startgameItemImage = CCMenuItemSprite::create(CCSprite::createWithSpriteFrameName("start.png"),
		CCSprite::createWithSpriteFrameName("start.png"),this,menu_selector(HelloWorld::gameEndCallback));
	CCMenu* menu = CCMenu::create(startgameItemImage,NULL);
	addChild(menu,1);

	CocosDenshion::SimpleAudioEngine::sharedEngine()->preloadEffect("mp3/fly.mp3");
	 CocosDenshion::SimpleAudioEngine::sharedEngine()->preloadEffect("mp3/dead.wav");
	 CocosDenshion::SimpleAudioEngine::sharedEngine()->preloadEffect("mp3/score.mp3");

	initWorld();

	addBg();
	addGround(123);
	addBrid();
	gameend = false;
	ispass = false;

	//scheduleOnce(schedule_selector(HelloWorld::startGame),1);
	return true;
}
示例#4
0
void HelloWorld::startGame( float dt)
{
	delete this->world;
	this->score = 0;
	this->down_bar = NULL;
	this->Xdownbar = 0;
	this->Xbird = 0;
	barTag = 0;
	barArray[0]=false;
	barArray[1]=false;

	isTouch = false;
	gameend = false;

	removeAllChildren();

	setTouchEnabled(true);
	
	initWorld();


	CCLabelAtlas* label2 = CCLabelAtlas::create("0123456789", "1.png", 17, 22, '0');
	addChild(label2, 1, 9);
	label2->setPosition(ccp(this->screenSize.width/2-30,this->screenSize.height/2+360));
	//label2->setColor(ccWHITE);
	label2->setScale(4);
	char string[12] = {0};
	sprintf(string,"%d",this->score);
	label2->setString(string);

	scheduleUpdate();
	schedule(schedule_selector(HelloWorld::addBar),1);
	//scheduleOnce(schedule_selector(HelloWorld::addBar),1);

	addBg();
	addGround(123);
	addBrid();
	addBarContainer();


}
示例#5
0
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }
    
    screenSize = CCDirector::sharedDirector()->getVisibleSize();
    
    initWorld();
    addBarContainer();
    addBird();
    addGround();
    setTouchEnabled(true);
    startGame();
    
    
    return true;
}
示例#6
0
void HelloWorld::update(float dt){
	this->world->Step(dt,8,3);

	float nowRotation = this->bird->getRotation();

	if(isTouch==true){
		isTouch = false;
		this->bird->setRotation(45);
	}else{		
		float birdRotation = nowRotation -2;
		if(birdRotation<-90) birdRotation = -90;
		this->bird->setRotation(birdRotation);
	}
	
	if(gameend==true) this->bird->setRotation(-90);
	
		
	CCSprite *s;
	//遍历棍
	b2Body *node  = this->world->GetBodyList();
	while(node){
		b2Body *b = node;
		node  = node->GetNext();
		if(b->GetUserData()!=NULL){

			//if(b->GetUserData()==this->down_bar){
			//	CCLog("down_bar is :%f \n",this->down_bar->getPositionX());
			//}else if(b->GetUserData()==this->ground){
			//	CCLog("ground is :%f \n",this->ground->getPositionX());
			//}else if(b->GetUserData()==this->ground2){
			//	CCLog("ground2 is :%f \n",this->ground2->getPositionX());
			//}

			if(b->GetUserData()==this->down_bar || b->GetUserData()==this->down_bar2){

				this->Xbird= this->bird->getPosition().x/RATIO;


				this->Xdownbar = b->GetPosition().x;	

				CCSprite* downSprite = (CCSprite*)b->GetUserData();
				int index = downSprite->getTag();

				if(barArray[index]==false && this->Xdownbar<this->Xbird){
					barArray[index]=true;
					//CCLog("== %d",index);
					this->score = this->score + 1;
					char string[12] = {0};
					CCLabelAtlas* label2 = (CCLabelAtlas*)getChildByTag(9);
					sprintf(string, "%d", (int)this->score);
					label2->setString( string ); 
					CocosDenshion::SimpleAudioEngine::sharedEngine()->playEffect("mp3/score.mp3");

				}

				//CCLog("*** %f , %f\n",this->Xdownbar,this->Xbird);	


				if(b->GetPosition().x<-3){
					s = (CCSprite*)b->GetUserData();
					if(s!=NULL){
						s->removeFromParent();
						CCLog("remove");
					}
					this->world->DestroyBody(b);
				}
			}
			
			if(b->GetUserData()==this->ground){
				if(b->GetPosition().x<0){
					addGround(dt);
				}

			}
		}
	}
	
}
示例#7
0
void Physics::addStage2(void) {
  addGround("ground", 0, 0, 0, 0, 8000, 0, 8000);
  addGoal("goal", 50, 25, 1000, 0);
  addWall("barrior_s", 0, 60, -200, 0, 500, 60, 50);
  addWall("barrior_n", 0, 60, 1200, 0, 500, 60, 50);
  addWall("barrior_w", 550, 60, 500, SIMD_HALF_PI, 650, 60, 50);
  addWall("barrior_e", -550, 60, 500, SIMD_HALF_PI, 650, 60, 50);

//   addWall("wall0", 450, 60, -100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall1", 350, 60, -100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall2", 250, 60, -100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall3", 150, 60, -100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall4", 50, 60, -100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall5", -50, 60, -100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall6", -150, 60, -100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall7", -250, 60, -100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall8", -350, 60, -100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall9", -450, 60, -100, 0, 50, 60, 50, INVISIBLE);


//   addWall("wall10", 450, 60, 0, 0, 50, 60, 50, INVISIBLE);
  addWall("wall11", 350, 60, 0, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall12", 250, 60, 0, 0, 50, 60, 50, INVISIBLE);
  addWall("wall13", 150, 60, 0, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall14", 50, 60, 0, 0, 50, 60, 50, INVISIBLE);
  addWall("wall15", -50, 60, 0, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall16", -150, 60, 0, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall17", -250, 60, 0, 0, 50, 60, 50, INVISIBLE);
  addWall("wall18", -350, 60, 0, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall19", -450, 60, 0, 0, 50, 60, 50, INVISIBLE);

//   addWall("wall20", 450, 60, 100, 0, 50, 60, 50, INVISIBLE);
  addWall("wall21", 350, 60, 100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall22", 250, 60, 100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall23", 150, 60, 100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall24", 50, 60, 100, 0, 50, 60, 50, INVISIBLE);
  addWall("wall25", -50, 60, 100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall26", -150, 60, 100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall27", -250, 60, 100, 0, 50, 60, 50, INVISIBLE);
  addWall("wall28", -350, 60, 100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall29", -450, 60, 100, 0, 50, 60, 50, INVISIBLE);

  addWall("wall30", 450, 60, 200, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall31", 350, 60, 200, 0, 50, 60, 50, INVISIBLE);
  addWall("wall32", 250, 60, 200, 0, 50, 60, 50, INVISIBLE);
  addWall("wall33", 150, 60, 200, 0, 50, 60, 50, INVISIBLE);
  addWall("wall34", 50, 60, 200, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall35", -50, 60, 200, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall36", -150, 60, 200, 0, 50, 60, 50, INVISIBLE);
  addWall("wall37", -250, 60, 200, 0, 50, 60, 50, INVISIBLE);
  addWall("wall38", -350, 60, 200, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall39", -450, 60, 200, 0, 50, 60, 50, INVISIBLE);

//   addWall("wall40", 450, 60, 300, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall41", 350, 60, 300, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall42", 250, 60, 300, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall43", 150, 60, 300, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall44", 50, 60, 300, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall45", -50, 60, 300, 0, 50, 60, 50, INVISIBLE);
  addWall("wall46", -150, 60, 300, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall47", -250, 60, 300, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall48", -350, 60, 300, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall49", -450, 60, 300, 0, 50, 60, 50, INVISIBLE);

//   addWall("wall50", 450, 60, 400, 0, 50, 60, 50, INVISIBLE);
  addWall("wall51", 350, 60, 400, 0, 50, 60, 50, INVISIBLE);
  addWall("wall52", 250, 60, 400, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall53", 150, 60, 400, 0, 50, 60, 50, INVISIBLE);
  addWall("wall54", 50, 60, 400, 0, 50, 60, 50, INVISIBLE);
  addWall("wall55", -50, 60, 400, 0, 50, 60, 50, INVISIBLE);
  addWall("wall56", -150, 60, 400, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall57", -250, 60, 400, 0, 50, 60, 50, INVISIBLE);
  addWall("wall58", -350, 60, 400, 0, 50, 60, 50, INVISIBLE);
  addWall("wall59", -450, 60, 400, 0, 50, 60, 50, INVISIBLE);

//   addWall("wall60", 450, 60, 500, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall61", 350, 60, 500, 0, 50, 60, 50, INVISIBLE);
  addWall("wall62", 250, 60, 500, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall63", 150, 60, 500, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall64", 50, 60, 500, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall65", -50, 60, 500, 0, 50, 60, 50, INVISIBLE);
  addWall("wall66", -150, 60, 500, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall67", -250, 60, 500, 0, 50, 60, 50, INVISIBLE);
  addWall("wall68", -350, 60, 500, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall69", -450, 60, 500, 0, 50, 60, 50, INVISIBLE);

  addWall("wall70", 450, 60, 600, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall71", 350, 60, 600, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall72", 250, 60, 600, 0, 50, 60, 50, INVISIBLE);
  addWall("wall73", 150, 60, 600, 0, 50, 60, 50, INVISIBLE);
  addWall("wall74", 50, 60, 600, 0, 50, 60, 50, INVISIBLE);
  addWall("wall75", -50, 60, 600, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall76", -150, 60, 600, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall77", -250, 60, 600, 0, 50, 60, 50, INVISIBLE);
  addWall("wall78", -350, 60, 600, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall79", -450, 60, 600, 0, 50, 60, 50, INVISIBLE);

//   addWall("wall80", 450, 60, 700, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall81", 350, 60, 700, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall82", 250, 60, 700, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall83", 150, 60, 700, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall84", 50, 60, 700, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall85", -50, 60, 700, 0, 50, 60, 50, INVISIBLE);
  addWall("wall86", -150, 60, 700, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall87", -250, 60, 700, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall88", -350, 60, 700, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall89", -450, 60, 700, 0, 50, 60, 50, INVISIBLE);

//   addWall("wall90", 450, 60, 800, 0, 50, 60, 50, INVISIBLE);
  addWall("wall91", 350, 60, 800, 0, 50, 60, 50, INVISIBLE);
  addWall("wall92", 250, 60, 800, 0, 50, 60, 50, INVISIBLE);
  addWall("wall93", 150, 60, 800, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall94", 50, 60, 800, 0, 50, 60, 50, INVISIBLE);
  addWall("wall95", -50, 60, 800, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall96", -150, 60, 800, 0, 50, 60, 50, INVISIBLE);
  addWall("wall97", -250, 60, 800, 0, 50, 60, 50, INVISIBLE);
  addWall("wall98", -350, 60, 800, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall99", -450, 60, 800, 0, 50, 60, 50, INVISIBLE);

//   addWall("wall100", 450, 60, 900, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall101", 350, 60, 900, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall102", 250, 60, 900, 0, 50, 60, 50, INVISIBLE);
  addWall("wall103", 150, 60, 900, 0, 50, 60, 50, INVISIBLE);
  addWall("wall104", 50, 60, 900, 0, 50, 60, 50, INVISIBLE);
  addWall("wall105", -50, 60, 900, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall106", -150, 60, 900, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall107", -250, 60, 900, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall108", -350, 60, 900, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall109", -450, 60, 900, 0, 50, 60, 50, INVISIBLE);

//   addWall("wall110", 450, 60, 1000, 0, 50, 60, 50, INVISIBLE);
  addWall("wall111", 350, 60, 1000, 0, 50, 60, 50, INVISIBLE);
  addWall("wall112", 250, 60, 1000, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall113", 150, 60, 1000, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall114", 50, 60, 1000, 0, 50, 60, 50, INVISIBLE);
  addWall("wall115", -50, 60, 1000, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall116", -150, 60, 1000, 0, 50, 60, 50, INVISIBLE);
  addWall("wall117", -250, 60, 1000, 0, 50, 60, 50, INVISIBLE);
  addWall("wall118", -350, 60, 1000, 0, 50, 60, 50, INVISIBLE);
  addWall("wall119", -450, 60, 1000, 0, 50, 60, 50, INVISIBLE);

//   addWall("wall120", 450, 60, 1100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall121", 350, 60, 1100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall122", 250, 60, 1100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall123", 150, 60, 1100, 0, 50, 60, 50, INVISIBLE);
  addWall("wall124", 50, 60, 1100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall125", -50, 60, 1100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall126", -150, 60, 1100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall127", -250, 60, 1100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall128", -350, 60, 1100, 0, 50, 60, 50, INVISIBLE);
//   addWall("wall129", -450, 60, 1100, 0, 50, 60, 50, INVISIBLE);

  movePenguin(btVector3(25, 25, -100));
  checkpoint = btVector3(25, 25, -100);
  jumping = false;
}
示例#8
0
void Physics::addStage1(void) {
  addGround("ground", 0, 0, 0, 0, 8000, 0, 8000, KILLBOX);
  addWall("south0", 0, 440, 0, 0, 760, 40, 120);   // start
  addWall("wall1", 0, 520, 160, 0, 80, 40, 40);  // stairs 1
  addWall("wall2", 0, 600, 240, 0, 80, 40, 40);
  addWall("wall3", 0, 680, 360, 0, 80, 40, 80);
  addWall("wall4", -220, 700, 540, 0, 40, 10, 40);
  addWall("wall5", -540, 740, 460, 0, 40, 10, 40);
  addWall("wall6", -320, 820, 380, 0, 40, 10, 40);
  addWall("wall7", -20, 860, 370, 0, 40, 10, 40);
  addWall("wall8", 420, 840, 420, 0, 40, 10, 40);
  addWall("wall9", 820, 900, 420, 0, 40, 10, 40);
  addWall("west0", 880, 1030, 800, 0, 120, 40, 670); 
  addWall("wall10", 1340, 780, 660, 0, 40, 10, 40);
  addWall("wall11", 1820, 700, 320, 0, 40, 10, 40);
  addWall("wall12", 2060, 760, 400, 0, 40, 10, 40);
  addWall("wall12_2", 2060, 760, 800, 0, 40, 10, 40);
  addWall("wall13", 1810, 780, 1200, 0, 40, 10, 60);
  addWall("wall14", 1380, 800, 1300, 0, 40, 40, 80);  // stairs 2
  addWall("wall15", 1260, 880, 1300, 0, 40, 40, 80);
  addWall("wall16", 1140, 970, 1300, 0, 40, 40, 80);
  addWall("wall17", 170, 1100, 1000, 0, 280, 20, 100, CHECKPOINT);
  addWall("east0", -880, 840, 800, 0, 120, 40, 670);
  addWall("wall18", -960, 960, 300, 0, 20, 10, 20);
  addWall("wall19", -840, 1010, 370, 0, 20, 10, 20);
  addWall("wall20", -760, 1040, 410, 0, 20, 10, 20);
  addWall("wall21", -540, 1100, 500, 0, 20, 10, 20);
  addWall("wall22", -540, 1140, 620, 0, 20, 10, 20);
  addWall("wall23", -540, 1210, 500, 0, 20, 10, 20);
  addWall("wall24", -580, 1280, 300, 0, 20, 10, 20);
  addWall("wall25", -600, 1300, 600, 0, 20, 10, 20);  // Stepping stone
  addWall("wall26", -620, 1350, 680, 0, 10, 10, 10);
  addWall("wall27", -580, 1355, 720, 0, 10, 10, 10);
  addWall("wall28", -580, 1360, 1120, 0, 10, 10, 10);
  addWall("wall29", -250, 1370, 1060, 0, 10, 10, 10);
  addWall("wall30", 0, 1400, 1000, 0, 15, 10, 15);
  addWall("wall31", -100, 1460, 1300, 0, 35, 10, 35);
  addWall("wall32", 0, 1460, 1600, 0, 28, 10, 28);
  addWall("wall33", 100, 1460, 1300, 0, 35, 10, 35);
  addWall("wall34", 0, 1500, 1950, 0, 100, 10, 40, CHECKPOINT);
  addWall("wall35", 0, 1560, 2300, 0, 40, 10, 40);
  addWall("north0", 0, 2360, 1600, 0, 750, 800, 120);  // great wall climb
  addWall("wall36", 300, 1640, 2200, 0, 80, 15, 40);
  addWall("wall37", 500, 1670, 1750, 0, 60, 15, 30);
  addWall("wall38", 100, 1700, 1750, 0, 60, 15, 30);
  addWall("wall39", -50, 1770, 1750, 0, 60, 10, 30);
  addWall("wall40", 150, 1835, 1750, 0, 70, 15, 30);
  addWall("wall41", 300, 1900, 1750, 0, 70, 15, 30);
  addWall("wall42", 450, 1970, 1750, 0, 50, 15, 30);
  addWall("wall43", 600, 2140, 1750, 0, 60, 15, 30);
  addWall("wall44", 350, 2200, 1750, 0, 70, 15, 30);
  addWall("wall45", 0, 2000, 1750, 0, 40, 15, 30);
  addWall("wall46", -180, 2080, 1750, 0, 40, 15, 30);
  addWall("wall47", 180, 2130, 1750, 0, 60, 15, 30);
  addWall("wall48", 980, 2220, 1750, 0, 70, 10, 30);
  addWall("wall49", 700, 2300, 1750, 0, 70, 10, 30);
  addWall("wall50", 300, 2360, 1750, 0, 70, 10, 30);
  addWall("wall51", 0, 2420, 1750, 0, 70, 10, 30);
  addWall("wall52", -300, 2490, 1750, 0, 70, 10, 30);
  addWall("wall53", -600, 2545, 1750, 0, 70, 10, 30);
  addWall("wall54", -900, 2620, 1750, 0, 70, 10, 30);
  addWall("wall55", -750, 2700, 1750, 0, 70, 10, 30);
  addWall("wall56", -1050, 2780, 1650, 0, 70, 10, 30, CHECKPOINT);
  addWall("wall57", -1050, 2840, 1400, 0, 40, 10, 40);
  addWall("wall58", -1050, 2920, 1200, 0, 40, 10, 40);
  addWall("wall59", -1050, 3000, 1100, 0, 40, 10, 40);
  addWall("wall60", -800, 3080, 1000, 0, 40, 10, 40);
  addGoal("goal", -400, 2800, 1000, 0);
  addWall("pillarsw", 880, 2000, 0, 0, 120, 1600, 120);
  addWall("pillarnw", 880, 2000, 1600, 0, 120, 1600, 120);
  addWall("pillarne", -880, 2000, 1600, 0, 120, 1250, 120);
  addWall("pillarse", -880, 2000, 0, 0, 120, 1600, 120);
  movePenguin(btVector3(0, 505, 0));
  checkpoint = btVector3(0, 505, 0);
  jumping = true;
}
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
	//////////////////////////////
	// 1. super init first
	if ( !CCLayer::init() )
	{
		return false;
	}
	mbirdstr.push_back("birdblue");
	mbirdstr.push_back("birdred");
	mbirdstr.push_back("birdyellow");
	mbirdclolor=rand()%100%3;
//	EFFECT_PLAY(true,MUSIC_SWOOSHING);
	//播放背景音乐
	// CocosDenshion::SimpleAudioEngine::sharedEngine()->playBackgroundMusic(MUSIC_JUMP, true);
	////////////////////////////////////////////////////
	// 下面添加创建自己的Sprite的代码
	////////////////////////////////////////////////////

	mScreenSize = CCDirector::sharedDirector()->getWinSize();
	mFPS=CCDirector::sharedDirector()->getAnimationInterval();


	mfac=CCDirector::sharedDirector()->getContentScaleFactor();
	mfax = 320.f/mScreenSize.width;
	//gBardis = 5.f*gUpVelocity/mfac;
	gBardis = mScreenSize.height*2.f/9.0f-5;
	//m_addbartime=mScreenSize.width*mFPS*mfax*1.f/2.f/MOVESPEED-10;
	//m_addbartime=3;
	initWorld();	
	for (int i = 0; i<GBACKGROUNDNUM; i++)
	{
		addBackGround(i);
	}
	int imaxgroundnum=1;
	for (int i = 0; i<imaxgroundnum; i++)
	{
		imaxgroundnum=addGround(i);
	}
	m_ilastground=imaxgroundnum-1;
	CCLOG("m_pLastGround->boundingBox() first x:%f,:%f  ", (m_pGroundVec[m_ilastground])->boundingBox().getMaxX(),
		(m_pGroundVec[m_ilastground])->boundingBox().size.width);
	addStart();
	addTop();
	//addRate();
	//addFlappyBird();

	addBird();
	addScore();
	addGameOver();

	m_pScore->setVisible(false);
	m_pGameOver->setVisible(false);
	this->goReady();
	addBarContainer();

	setTouchEnabled(true);
	myflag=0;
	m_istatus=GETREADY;
	m_bhitbar=false;
	//scheduleOnce(schedule_selector(HelloWorld::startGame), 1);
	this->scheduleUpdate();
	//创建动画
	initAction();
	myangle=0.f;
	return true;
}