11#include " RLDifficultySelectLayer.hpp"
2+ #include " ../utils.hpp"
23
34RLDifficultySelectLayer* RLDifficultySelectLayer::create (const RLDifficultySelectInfo& dsi)
45{
@@ -26,15 +27,19 @@ bool RLDifficultySelectLayer::init(const RLDifficultySelectInfo& dsi)
2627
2728 difficulty_buttons_menu = CCMenu::create ();
2829 difficulty_buttons_menu->setID (" difficulty-buttons" );
30+ difficulty_buttons_menu->setContentSize ({ 380 .f , 180 .f });
31+ difficulty_buttons_menu->setLayout (
32+ AxisLayout::create ()
33+ ->setGap (15 .f )
34+ ->setGrowCrossAxis (true )
35+ );
2936 m_mainLayer->addChild (difficulty_buttons_menu, 11 );
3037
3138
32- for (int i = 0 ; i < m_dsi.difficulties . size (); i++ )
39+ for (const auto & difficulty : m_dsi.difficulties )
3340 {
34- const auto difficulty = m_dsi.difficulties .at (i);
35-
3641 auto difficultySprite = CCSprite::createWithSpriteFrameName (
37- fmt::format ( " difficulty_{0:0{1}}_btn2_001.png " , static_cast < int > (difficulty), 2 ). c_str ()
42+ rl::constants::difficulty_to_sprite. at (difficulty). data ()
3843 );
3944 difficultySprite->setScale (1 .2f );
4045 auto difficultyButton = CCMenuItemSpriteExtra::create (
@@ -44,12 +49,15 @@ bool RLDifficultySelectLayer::init(const RLDifficultySelectInfo& dsi)
4449 );
4550 if (m_dsi.selectedDifficulty != difficulty)
4651 difficultyButton->setColor ({ 125 , 125 , 125 });
47- difficultyButton->setPosition ({ - 125 . f + i * 60 . f , 7 . f } );
52+ difficultyButton->setLayoutOptions ( AxisLayoutOptions::create () );
4853 difficultyButton->setTag (static_cast <int >(difficulty));
4954 difficulty_buttons_menu->addChild (difficultyButton);
5055 }
5156
5257
58+ difficulty_buttons_menu->updateLayout ();
59+
60+
5361 auto title = CCLabelBMFont::create (m_dsi.title .data (), " bigFont.fnt" );
5462 title->setPosition ({ .0f , 70 .f });
5563 m_buttonMenu->addChild (title);
0 commit comments