// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    if ( !Layer::init() )
    {
        return false;
    }

	b2Vec2 gravity = b2Vec2(0, -7.0f);
	_world = new b2World(gravity);
	_world->SetAllowSleeping(true);

	_background = Background::createWithColor(ccColor4F(ccColor4B(255, 0, 0, 255)));
	_background->retain();
	addChild(_background);
    
    _terrain = Terrain::createWithWorld(_world);
	_terrain->retain();
	addChild(_terrain);

	_bird = Bird::createWithWorld(_world);
	_bird->retain();
	_terrain->addChild(_bird);
    
	// touch event
	auto touchListener = EventListenerTouchOneByOne::create();
	touchListener->onTouchBegan = CC_CALLBACK_2(HelloWorld::onTouchBegan, this);
	touchListener->onTouchEnded = CC_CALLBACK_2(HelloWorld::onTouchEnded, this);
	_eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);
	// Key event
	auto keyListener = EventListenerKeyboard::create();
	keyListener->onKeyPressed = CC_CALLBACK_2(HelloWorld::onKeyPressed, this);
	_eventDispatcher->addEventListenerWithSceneGraphPriority(keyListener, this);
	scheduleUpdate();

	// game state
	_gameState = GameState::create();
	_gameState->retain();
	_gameState->changeState(BeginState::createWithLevel(_gameState, this, 0));

    return true;
}
Example #2
0
GameSprite::GameSprite(const char* file) {
	this->sprite = CCSprite::create(file);
	//TODO 待调整
	this->streak = CCMotionStreak::create(2,2,2,ccColor4F(255,0,0,255),file);
	this->hp = 100;
}