// 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; }
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; }