| 42 | } |
| 43 | |
| 44 | bool TutorialLayer::init() |
| 45 | { |
| 46 | if (!PopupLayer::init()) return false; |
| 47 | |
| 48 | std::string bigFontStr = GameToolbox::getTextureString("bigFont.fnt"); |
| 49 | |
| 50 | auto director = Director::getInstance(); |
| 51 | const auto& winSize = director->getWinSize(); |
| 52 | |
| 53 | layer1 = Layer::create(); |
| 54 | addChild(layer1); |
| 55 | |
| 56 | auto bg = ui::Scale9Sprite::create(GameToolbox::getTextureString("GJ_square01.png")); |
| 57 | bg->setContentSize({ 420.0f, 260.0f }); |
| 58 | bg->setPosition({ 294.500f, 163.000f }); |
| 59 | bg->setScale(1.000f); |
| 60 | layer1->addChild(bg); |
| 61 | |
| 62 | auto label = Label::createWithBMFont(bigFontStr, "How to play"); |
| 63 | label->setPosition({ 282.500f, 265.000f }); |
| 64 | label->setScale(1.0f); |
| 65 | label->setContentSize({ 207.500f, 32.500f }); |
| 66 | float labelWidth = label->getContentSize().width; |
| 67 | if (labelWidth > 300.0f) |
| 68 | { |
| 69 | label->setScaleX(300.0f / labelWidth); |
| 70 | } |
| 71 | layer1->addChild(label); |
| 72 | |
| 73 | tap_label = Label::createWithBMFont(bigFontStr, "Tap the screen to jump.\n"); |
| 74 | tap_label->setPosition({ 278.600f, 222.100 }); // tap_label->setPosition({ 278.600f, 222.100f }); |
| 75 | tap_label->setScale(0.700f); |
| 76 | tap_label->setContentSize({ 414.000f, 32.500f }); |
| 77 | layer1->addChild(tap_label); |
| 78 | |
| 79 | hold_label = Label::createWithBMFont(bigFontStr, "Hold down to keep jumping."); |
| 80 | hold_label->setPosition({ 294.800f, 193.200f }); |
| 81 | hold_label->setScale(0.800f); |
| 82 | hold_label->setContentSize({ 464.250f, 32.500f }); |
| 83 | layer1->addChild(hold_label); |
| 84 | |
| 85 | auto imageSprite = Sprite::create(GameToolbox::getTextureString("tutorial_01.png")); |
| 86 | imageSprite->setScale(0.950f); |
| 87 | imageSprite->setPosition({ 239.000f, 84.000f }); |
| 88 | imageSprite->setContentSize({ 283.500, 55.000f }); |
| 89 | imageSprite->setStretchEnabled(false); |
| 90 | layer1->addChild(imageSprite); |
| 91 | |
| 92 | auto nextButtonSprite = ButtonSprite::create("Next"); |
| 93 | auto nextButton = MenuItemSpriteExtra::create(nextButtonSprite, [&](Node*) { this->onNext(); }); |
| 94 | nextButton->setScale(1.0f); |
| 95 | auto nextButtonMenu = Menu::createWithItem(nextButton); |
| 96 | nextButtonMenu->setPosition({ 437.250f, 84.000f }); |
| 97 | nextButtonMenu->setTag(150); |
| 98 | layer1->addChild(nextButtonMenu); |
| 99 | |
| 100 | currentTutorialIndex = 1; |
| 101 | |