55using namespace geode ::prelude;
66
77void GYSettingSelectLayer::keyBackClicked () {
8- CCDirector::get ()->popScene ();
8+ CCDirector::sharedDirector ()->popSceneWithTransition (0 .5f , PopTransition::kPopTransitionFade );
9+ }
10+
11+ void GYSettingSelectLayer::backWrapper (CCObject* sender) {
12+ GYSettingSelectLayer::keyBackClicked ();
913}
1014
1115CCScene* GYSettingSelectLayer::scene () {
@@ -25,27 +29,79 @@ GYSettingSelectLayer* GYSettingSelectLayer::create() {
2529}
2630
2731void GYSettingSelectLayer::settingsBtn (CCObject* sender) {
28- auto scenePrev = CCTransitionFade::create (0 .5f , GYSettingSelectLayer::scene ());
32+ auto scene = CCScene::create ();
33+ GYSettingSelectLayer* ret = new GYSettingSelectLayer ();
34+ // Everything after this is not compiled
35+ if (ret && ret->init ()) {
36+ ret->autorelease ();
37+ }
38+ delete ret;
39+ ret = nullptr ;
40+ scene->addChild (GYSettingSelectLayer::create ());
41+ auto scenePrev = CCTransitionFade::create (0 .5f , scene);
2942 CCDirector::sharedDirector ()->pushScene (scenePrev);
3043}
3144
3245bool GYSettingSelectLayer::init () {
33- if (!GYSettingSelectLayer ::init ())
46+ if (!CCLayer ::init ())
3447 return false ;
3548
36- setKeyboardEnabled (true );
49+ setKeypadEnabled (true );
3750
3851 auto winSize = CCDirector::sharedDirector ()->getWinSize ();
3952 auto menu = CCMenu::create ();
53+ menu->setID (" menu" );
4054
4155 auto background = CCSprite::create (" GJ_gradientBG.png" );
4256 background->setScaleX (CCDirector::sharedDirector ()->getWinSize ().width / background->getContentSize ().width );
4357 background->setScaleY (CCDirector::sharedDirector ()->getWinSize ().height / background->getContentSize ().height );
4458 background->setZOrder (-1 );
4559 background->setColor ({ 0 , 102 , 255 });
4660 background->setID (" background" );
47- background->setPosition ({ 0 . f , 0 . f });
61+ background->setPosition ({ winSize. width / 2 , winSize. height / 2 });
4862 this ->addChild (background);
63+
64+ auto backBtn = CCMenuItemSpriteExtra::create (
65+ CCSprite::createWithSpriteFrameName (" GJ_arrow_01_001.png" ),
66+ this ,
67+ menu_selector (GYSettingSelectLayer::backWrapper)
68+ );
69+ backBtn->setPosition (winSize.width * -0.45 , winSize.height * 0.4 );
70+ backBtn->setID (" back-btn" );
71+ menu->addChild (backBtn);
72+
73+ auto title = CCLabelBMFont::create (" Geodify Settings" , " bigFont.fnt" );
74+ title->setPosition (winSize.width / 2 , winSize.height * 0.9 );
75+ title->setID (" title" );
76+ this ->addChild (title);
77+
78+ auto leftMenu = CCMenu::create ();
79+ leftMenu->setAnchorPoint ({ 0 , 0 });
80+ leftMenu->setContentSize ({ 0 .f , winSize.height * 0 .6f });
81+ leftMenu->setPosition ({ winSize.width * 0 .1f , winSize.height * 0 .2f });
82+ leftMenu->setID (" left-menu" );
83+
84+ auto leftLayout = ColumnLayout::create ();
85+ leftLayout->setAxis (Axis::Column);
86+ leftLayout->setGap (10 .f );
87+
88+ leftMenu->setLayout (leftLayout);
89+
90+ auto colorBtn = CCMenuItemSpriteExtra::create (
91+ CCSprite::createWithSpriteFrameName (
92+ " GJ_paintBtn_001.png"
93+ ),
94+ this ,
95+ menu_selector (GYSettingSelectLayer::settingsBtn)
96+ );
97+ colorBtn->setID (" color-button" );
98+
99+ leftMenu->addChild (colorBtn);
100+
101+ leftMenu->updateLayout ();
102+
103+ this ->addChild (leftMenu);
104+ this ->addChild (menu);
49105
50106 return true ;
51107}
0 commit comments