-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMenuLayer.cpp
More file actions
87 lines (77 loc) · 2.8 KB
/
MenuLayer.cpp
File metadata and controls
87 lines (77 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
// MenuLayer.cpp
#include "MenuLayer.h"
#include"GameLayer.h"
#include "ranklistScene.h"
void MenuLayer::menuCallback(Ref* pSender) {
switch (((MenuItemImage *)pSender)->getTag()) {
case 1:
UserDefault::getInstance()->setFloatForKey("x",0);
UserDefault::getInstance()->setFloatForKey("y", 0);
UserDefault::getInstance()->setIntegerForKey("score", 0);
UserDefault::getInstance()->setIntegerForKey("game", 1);
UserDefault::getInstance()->setDoubleForKey("leftTime", 300);
UserDefault::getInstance()->flush();
toGameScene();
break;
case 2:
toGameScene();
break;
case 3:
toRanklistScene();
break;
case 4:
Director::getInstance()->end();
exit(0);
break;
default:
break;
}
}
void MenuLayer::toGameScene() {
auto gameScene = GameLevelLayer::createScene();
Director::getInstance()->replaceScene(gameScene);
}
void MenuLayer::toRanklistScene(){
auto scene = ranklistScene::createScene();
Director::getInstance()->replaceScene(scene);
}
bool MenuLayer::init() {
if (!Layer::init()) {
return false;
}
Size visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
//create background
auto background = Sprite::create("bg_opening.jpg");
background->setScale(0.5);
background->setPosition(Vec2(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
this->addChild(background, 0);
//create buttons
auto startButton = MenuItemImage::create("button_start.png", "button_start_selected.png", CC_CALLBACK_1(MenuLayer::menuCallback, this));
startButton->setPosition(Vec2(visibleSize.width*0.2, visibleSize.height*0.77));
startButton->setScale(0.3);
startButton->setTag(1);
auto continueButton = MenuItemImage::create("button_continue.png", "button_continue_selected.png", CC_CALLBACK_1(MenuLayer::menuCallback, this));
continueButton->setPosition(Vec2(visibleSize.width*0.2, visibleSize.height*0.65));
continueButton->setScale(0.3);
continueButton->setTag(2);
auto rankButton = MenuItemImage::create("button_rank.png", "button_rank_selected.png", CC_CALLBACK_1(MenuLayer::menuCallback, this));
rankButton->setPosition(Vec2(visibleSize.width*0.2, visibleSize.height*0.53));
rankButton->setScale(0.3);
rankButton->setTag(3);
auto exitButton = MenuItemImage::create("button_exit.png", "button_exit_selected.png", CC_CALLBACK_1(MenuLayer::menuCallback, this));
exitButton->setPosition(Vec2(visibleSize.width*0.2, visibleSize.height*0.41));
exitButton->setScale(0.3);
exitButton->setTag(4);
//create menu
auto menu = Menu::create(startButton, rankButton, continueButton, exitButton, NULL);
menu->setPosition(Vec2::ZERO);
this->addChild(menu, 10);
return true;
}
Scene* MenuLayer::createScene() {
auto scene = Scene::create();
auto layer = MenuLayer::create();
scene->addChild(layer);
return scene;
}