#include "state.h" #include "cocos2d.h" USING_NS_CC; class IdleState : public State { public: CREATE_FUNC(IdleState); virtual bool init(); IdleState(HelloWorld *){ IdleState::create(); } IdleState(){} virtual void didEnterWithPreviousState(State* previousState); virtual void updateWithDeltaTime(float delta); virtual void willExitWithNextState(State* nextState); virtual bool isValidNextState(State* state); }; void IdleState::updateWithDeltaTime(float delta) {} void IdleState::didEnterWithPreviousState(State *previousState) {} void IdleState::willExitWithNextState(State *previousState) {} bool IdleState::isValidNextState(State *previousState) { return true; } bool IdleState::init() { if(!Layer::init()){ return false; } auto visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto label = Label::createWithTTF("IdleState World", "fonts/Marker Felt.ttf", 24); if (label == nullptr) { log("'fonts/Marker Felt.ttf'"); } else { // position the label on the center of the screen label->setPosition(Vec2(Vec2( visibleSize.width/2 , visibleSize.height /2 ))); // add the label as a child to this layer this->addChild(label, 1); } return true; } class RunState : public State { public: CREATE_FUNC(RunState); RunState(){} RunState(HelloWorld *){ RunState::create(); } virtual bool init(); virtual void didEnterWithPreviousState(State* previousState); virtual void updateWithDeltaTime(float delta); virtual void willExitWithNextState(State* nextState); virtual bool isValidNextState(State* state); }; void RunState::updateWithDeltaTime(float delta) {} void RunState::didEnterWithPreviousState(State *previousState) {} void RunState::willExitWithNextState(State *previousState) {} bool RunState::isValidNextState(State *previousState) { return true; } bool RunState::init() { if(!Layer::init()){ return false; } auto visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto label = Label::createWithTTF("RunState World", "fonts/Marker Felt.ttf", 24); if (label == nullptr) { log("'fonts/Marker Felt.ttf'"); } else { // position the label on the center of the screen label->setPosition(Vec2(Vec2( visibleSize.width/2 , visibleSize.height /2 ))); // add the label as a child to this layer this->addChild(label, 1); } return true; } class PauseState : public State { public: CREATE_FUNC(PauseState); PauseState(){} PauseState(HelloWorld * parent){ PauseState::create(); } virtual bool init(); virtual void didEnterWithPreviousState(State* previousState); virtual void updateWithDeltaTime(float delta); virtual void willExitWithNextState(State* nextState); virtual bool isValidNextState(State* state); }; void PauseState::updateWithDeltaTime(float delta) {} void PauseState::didEnterWithPreviousState(State *previousState) {} void PauseState::willExitWithNextState(State *previousState) {} bool PauseState::isValidNextState(State *previousState) { return true; } bool PauseState::init() { if(!Layer::init()){ return false; } auto visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto label = Label::createWithTTF("pause World", "fonts/Marker Felt.ttf", 24); if (label == nullptr) { log("'fonts/Marker Felt.ttf'"); } else { // position the label on the center of the screen // label->setPosition(Vec2(origin.x + visibleSize.width/2, origin.y + visibleSize.height - label->getContentSize().height)); label->setPosition(Vec2( visibleSize.width/2 , visibleSize.height /2 )); // add the label as a child to this layer this->addChild(label, 1); } return true; }