Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include "MenuScene.h"
  2. #include "Scene1.h"
  3.  
  4. //calculate linear intrpolation
  5. Point lerp(Point p1, Point p2, float percentage)
  6. {
  7.     return (p1 * (1 - (percentage / 100.f))) + (p2 * (percentage / 100.f));
  8. }
  9.  
  10. Scene* MenuScene::createScene()
  11. {
  12.     auto scene = Scene::create();
  13.     auto layer = MenuScene::create();
  14.     scene->addChild(layer);
  15.     return scene;
  16. }
  17.  
  18. bool MenuScene::init()
  19. {
  20.     if (!Layer::init())
  21.     {
  22.         return false;
  23.     }
  24.  
  25.     auto screen = Director::getInstance()->getWinSize();
  26.    
  27.     auto menu_label = LabelTTF::create("Menu","Arial",32);
  28.     menu_label->setPosition(screen.width/2, screen.height/2+300);
  29.     this->addChild(menu_label);
  30.    
  31.     auto scene1_label = LabelTTF::create("Scene_1", "Arial", 24);
  32.     auto scene2_label = LabelTTF::create("Scene_2", "Arial", 24);
  33.    
  34.     auto scene1_menu = MenuItemLabel::create(scene1_label, [](Ref* sender){ Director::getInstance()->pushScene(TankMove::createScene()); });
  35.     auto scene2_menu = MenuItemLabel::create(scene2_label, [](Ref* sender){ Director::getInstance()->pushScene(TankMove::createScene()); });
  36.    
  37.     auto menu = Menu::create(scene1_menu,scene2_menu,nullptr);
  38.     menu->setPosition(Point(screen.width/2,screen.height/2));
  39.     this->addChild(menu, 1);
  40.     scene1_menu->setPosition(lerp(Point(0, menu->getPositionY() - menu->getContentSize().height / 2), Point(0, menu->getPositionY() + menu->getContentSize().height / 2), 20));
  41.     scene2_menu->setPosition(lerp(Point(0, menu->getPositionY() - menu->getContentSize().height / 2), Point(0, menu->getPositionY() + menu->getContentSize().height / 2), 10));
  42.  
  43.     return true;
  44. }