GameMenu.h

  1. #ifdef WIN32
  2. #pragma execution_character_set("utf-8")
  3. #ifndef __GAMEMENU_SCENE_H__
  4. #define __GAMEMENU_SCENE_H__
  5. #include "cocos2d.h"
  6. #include "ui/CocosGUI.h"
  7. #include "SimpleAudioEngine.h"
  8. #include <string.h>
  9. #include <time.h>
  10. #include "cocos-ext.h"
  11. #include "Block.h"
  12. #include "Level_01.h"
  13. using namespace cocos2d::ui;
  14. using namespace CocosDenshion;
  15. USING_NS_CC_EXT;
  16. USING_NS_CC;
  17. class GameMenu : public cocos2d::Scene
  18. {
  19. public:
  20. static cocos2d::Scene* createScene();
  21. virtual bool init();
  22. // a selector callback
  23. void menuCloseCallback(cocos2d::Ref* pSender);
  24. // implement the "static create()" method manually
  25. CREATE_FUNC(GameMenu);
  26. };
  27. #endif // __GAMEMENU_SCENE_H__
  28. #endif


GameMenu.cpp

  1. #ifdef WIN32
  2. #pragma execution_character_set("utf-8")
  3. #include "GameMenu.h"
  4. #include "SimpleAudioEngine.h"
  5. USING_NS_CC_EXT;
  6. USING_NS_CC;
  7. Scene* GameMenu::createScene(){
  8. return GameMenu::create();
  9. }
  10. static void problemLoading(const char* filename){
  11. printf("Error while loading: %s\n", filename);
  12. printf("Depending on how you compiled you might have to add 'Resources/' in front of filenames in GameMenuScene.cpp\n");
  13. }
  14. bool GameMenu::init(){
  15. if ( !Scene::init() ){
  16. return false;
  17. }
  18. auto visibleSize = Director::getInstance()->getVisibleSize();
  19. Vec2 origin = Director::getInstance()->getVisibleOrigin();
  20. //auto sprite = Sprite::create("");
  21. /*auto block = Block::create("HelloWorld.png",1,3,3);
  22. block->setPosition(Vec2(origin.x + visibleSize.width / 2, origin.y + visibleSize.height / 2));
  23. block->setAnchorPoint(Point(0.5, 0.5));
  24. this->addChild(block, 1);*/
  25. //准备在该场景跳往Level_01场景
  26. auto changeScene = MenuItemFont::create("GoToTheLevel_01", [=](Ref* sender) {
  27. log("---------------------------------------");
  28. auto level_01_Scene = Level_01::createScene(); //利用Level_01类创建一个场景
  29. Director::getInstance()->pushScene(level_01_Scene); //替换原场景方式更换场景
  30. return;
  31. });//一个用户可以点击的菜单按钮
  32. auto myMenu = Menu::create(changeScene, NULL);//菜单按钮需要挂载在菜单下
  33. myMenu->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
  34. this->addChild(myMenu, 1); //将菜单放在默认场景的第一层上
  35. return true;
  36. }
  37. void GameMenu::menuCloseCallback(Ref* pSender){
  38. Director::getInstance()->end();
  39. }
  40. #endif