#include "MenuScene.h"
#include "Scene1.h"
//calculate linear intrpolation
Point lerp(Point p1, Point p2, float percentage)
{
return (p1 * (1 - (percentage / 100.f))) + (p2 * (percentage / 100.f));
}
Scene* MenuScene::createScene()
{
auto scene = Scene::create();
auto layer = MenuScene::create();
scene->addChild(layer);
return scene;
}
bool MenuScene::init()
{
if (!Layer::init())
{
return false;
}
auto screen = Director::getInstance()->getWinSize();
auto menu_label = LabelTTF::create("Menu","Arial",32);
menu_label->setPosition(screen.width/2, screen.height/2+300);
this->addChild(menu_label);
auto scene1_label = LabelTTF::create("Scene_1", "Arial", 24);
auto scene2_label = LabelTTF::create("Scene_2", "Arial", 24);
auto scene1_menu = MenuItemLabel::create(scene1_label, [](Ref* sender){ Director::getInstance()->pushScene(TankMove::createScene()); });
auto scene2_menu = MenuItemLabel::create(scene2_label, [](Ref* sender){ Director::getInstance()->pushScene(TankMove::createScene()); });
auto menu = Menu::create(scene1_menu,scene2_menu,nullptr);
menu->setPosition(Point(screen.width/2,screen.height/2));
this->addChild(menu, 1);
scene1_menu->setPosition(lerp(Point(0, menu->getPositionY() - menu->getContentSize().height / 2), Point(0, menu->getPositionY() + menu->getContentSize().height / 2), 20));
scene2_menu->setPosition(lerp(Point(0, menu->getPositionY() - menu->getContentSize().height / 2), Point(0, menu->getPositionY() + menu->getContentSize().height / 2), 10));
return true;
}