bool BaseScene::init(int backgroundColor) { s_CurrentScene = this; m_emitterCreated = TAG_EMITTER_START; m_emitterReleased = TAG_EMITTER_START; m_emitterStopped = TAG_EMITTER_START; m_touchEmitter = true; if ( !LayerColor::initWithColor(C4B(backgroundColor)) ) { return false; } this->setScale(E::scale); this->setContentSize(Size(E::visibleWidth, E::visibleHeight)); this->setAnchorPoint(Vec2(0, 0)); auto listener = cocos2d::EventListenerTouchOneByOne::create(); listener->setSwallowTouches(true); listener->onTouchBegan = CC_CALLBACK_2(BaseScene::onTouchBegan, this); listener->onTouchMoved = CC_CALLBACK_2(BaseScene::onTouchMoved, this); listener->onTouchEnded = CC_CALLBACK_2(BaseScene::onTouchEnded, this); listener->onTouchCancelled = CC_CALLBACK_2(BaseScene::onTouchCancelled, this); cocos2d::Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this); // creating a keyboard event listener auto keyboardListener = EventListenerKeyboard::create(); keyboardListener->onKeyPressed = CC_CALLBACK_2(BaseScene::onKeyPressed, this); keyboardListener->onKeyReleased = CC_CALLBACK_2(BaseScene::onKeyReleased, this); cocos2d::Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(keyboardListener, this); return true; }
ZXB(Z16_UNORM, Z16_UNORM, C0, C0, C0, xx, UNORM, Z16, TZ), ZXB(Z32_FLOAT, Z32_FLOAT, C0, C0, C0, xx, FLOAT, Z32, TZ), ZXB(Z24X8_UNORM, Z24_X8_UNORM, C0, C0, C0, xx, UNORM, Z24_X8, TZ), SZB(X8Z24_UNORM, S8_Z24_UNORM, C1, C1, C1, xx, UNORM, S8_Z24, TZ), ZSB(Z24_UNORM_S8_UINT, Z24_S8_UNORM, C0, C0, C0, xx, UNORM, Z24_S8, TZ), SZB(S8_UINT_Z24_UNORM, S8_Z24_UNORM, C1, C1, C1, xx, UNORM, S8_Z24, TZ), ZSB(Z32_FLOAT_S8X24_UINT, Z32_S8_X24_FLOAT, C0, C0, C0, xx, FLOAT, Z32_S8_X24, TZ), SXB(S8_UINT, C0, 8, T), SXB(X24S8_UINT, C1, Z24_S8, T), SXB(S8X24_UINT, C0, S8_Z24, T), SXB(X32_S8X24_UINT, C1, Z32_S8_X24, T), F3B(B5G6R5_UNORM, B5G6R5_UNORM, C2, C1, C0, xx, UNORM, 5_6_5, TD), C4B(B5G5R5A1_UNORM, BGR5_A1_UNORM, C2, C1, C0, C3, UNORM, 5_5_5_1, TD), F3B(B5G5R5X1_UNORM, BGR5_X1_UNORM, C2, C1, C0, xx, UNORM, 5_5_5_1, TD), C4B(B4G4R4A4_UNORM, NONE, C2, C1, C0, C3, UNORM, 4_4_4_4, T), F3B(B4G4R4X4_UNORM, NONE, C2, C1, C0, xx, UNORM, 4_4_4_4, T), F3B(R9G9B9E5_FLOAT, NONE, C0, C1, C2, xx, FLOAT, 9_9_9_E5, T), C4A(R10G10B10A2_UNORM, RGB10_A2_UNORM, C0, C1, C2, C3, UNORM, 10_10_10_2, IBV, 0), C4A(B10G10R10A2_UNORM, BGR10_A2_UNORM, C2, C1, C0, C3, UNORM, 10_10_10_2, TDV, 1), C4A(R10G10B10A2_SNORM, NONE, C0, C1, C2, C3, SNORM, 10_10_10_2, TV, 0), C4A(B10G10R10A2_SNORM, NONE, C2, C1, C0, C3, SNORM, 10_10_10_2, TV, 1), C4A(R10G10B10A2_UINT, RGB10_A2_UINT, C0, C1, C2, C3, UINT, 10_10_10_2, TRV, 0), C4A(B10G10R10A2_UINT, RGB10_A2_UINT, C2, C1, C0, C3, UINT, 10_10_10_2, TV, 0), F3A(R11G11B10_FLOAT, R11G11B10_FLOAT, C0, C1, C2, xx, FLOAT, 11_11_10, IBV),
// on "init" you need to initialize your instance bool S_About::init() { m_bClose = false; // super init if ( !BaseScene::init((E::P.C100)) ) { return false; } m_titleBar = TitleBar::create(S("About", "关于")); this->addChild(m_titleBar, 1000); m_heartBtn = EdgedBallButton::create(CC_CALLBACK_1(S_About::menuCallback, this)); m_heartBtn->setScale(0.3f); m_heartBtn->setPosition(Vec2(48, 40)); m_heartBtn->setTag(TAG_BACK); m_titleBar->addChild(m_heartBtn, 1000); m_heartIcon = Sprite::create("ui/ob_go_back.png"); m_heartIcon->setColor(C3B(E::P.C700)); m_heartIcon->setScale(0.9f); m_heartIcon->setAnchorPoint(Vec2(0.5, 0.5)); m_heartIcon->setPosition(m_heartBtn->getContentSize() / 2); m_heartBtn->addChild(m_heartIcon, 1000); // create solid color background m_btmBg = BallButton::create(E::P.C50); m_btmBg->setScale(0.3f); m_btmBg->setPosition(Vec2(E::visibleWidth/2, 128+(-9/15.0f)*128)); // m_btmBg->setTag(TAG_BTM_BG); this->addChild(m_btmBg, 0); // create solid color background m_bgTop = LayerColor::create(C4B(E::P.C100)); // m_bgTop->setTag(TAG_BG_TOP); m_bgTop->setContentSize(Size(E::visibleWidth, E::visibleHeight - BTM_HEIGHT)); m_bgTop->setPosition(0, BTM_HEIGHT); this->addChild(m_bgTop, 0); // create the shadow m_shadow = Sprite::create("ui/shadow.png"); m_shadow->setScale(1.0f); m_shadow->setAnchorPoint(Vec2(0, 1)); m_shadow->setScaleX(E::visibleWidth / DESIGNED_WIDTH); m_shadow->setPosition(0, BTM_HEIGHT); // m_shadow->setTag(TAG_SHADOW); m_shadow->setOpacity(0); this->addChild(m_shadow, 0); //============================================================ auto icon = Sprite::create("icon.png"); icon->setScale(0.6f); icon->setPosition(E::visibleWidth/2, E::originY + 640 - 24); this->addChild(icon, 0); auto lbTitle = Label::createWithTTF(GAME_TITLE, FONT_BOLD, 24, Size(256, 32), TextHAlignment::CENTER, TextVAlignment::CENTER); lbTitle->setPosition(E::visibleWidth/2, E::originY + 480 + 32); lbTitle->setAnchorPoint(Vec2(0.5, 0.5)); lbTitle->setColor(C3B(E::P.C900)); this->addChild(lbTitle, 0); auto lbVersion = Label::createWithTTF("Ver: " VERSION, FONT_MAIN, 24, Size(256, 32), TextHAlignment::CENTER, TextVAlignment::CENTER); lbVersion->setPosition(E::visibleWidth/2, E::originY + 480); lbVersion->setAnchorPoint(Vec2(0.5, 0.5)); lbVersion->setColor(C3B(E::P.C900)); this->addChild(lbVersion, 0); #define OFFSET_Y__ (320) auto iconCharmy = Sprite::create("g_charmy_av.png"); iconCharmy->setScale(0.6f); iconCharmy->setAnchorPoint(Vec2(0, 0.5)); iconCharmy->setPosition(E::originX + 24, E::originY + OFFSET_Y__); this->addChild(iconCharmy, 0); auto lbCharmy = Label::createWithTTF(S("CharmySoft", "尘泯网络"), FONT_BOLD, 28, Size(320, 64), TextHAlignment::CENTER, TextVAlignment::CENTER); lbCharmy->setPosition(E::visibleWidth/2 + 80, E::originY + OFFSET_Y__ + 48); lbCharmy->setAnchorPoint(Vec2(0.5, 0.5)); lbCharmy->setColor(C3B(E::P.C900)); this->addChild(lbCharmy, 0); auto lbCharmyDetail = Label::createWithTTF(S("Charmy Game and Software Development", "尘羽泯游戏软件开发"), FONT_MAIN, 24, Size(320, 64), TextHAlignment::CENTER, TextVAlignment::CENTER); lbCharmyDetail->setPosition(E::visibleWidth/2 + 80, E::originY + OFFSET_Y__ ); lbCharmyDetail->setAnchorPoint(Vec2(0.5, 0.5)); lbCharmyDetail->setColor(C3B(E::P.C900)); this->addChild(lbCharmyDetail, 0); auto lbLink = Label::createWithTTF(S("http://www.CharmySoft.com", "www.CharmySoft.com"), FONT_MAIN, 24, Size(256, 64), TextHAlignment::CENTER, TextVAlignment::CENTER); lbLink->setPosition(E::visibleWidth/2 + 80, E::originY + OFFSET_Y__ - 48); lbLink->setAnchorPoint(Vec2(0.5, 0.5)); lbLink->setColor(C3B(E::P.C900)); this->addChild(lbLink, 0); /* auto lbVersion = Label::createWithTTF(S("VERSION", "版本"), FONT_BOLD, 24, Size(128, 32), TextHAlignment::LEFT, TextVAlignment::CENTER); lbVersion->setPosition(24, E::originY + 480); lbVersion->setAnchorPoint(Vec2(0, 0)); lbVersion->setColor(C3B(E::P.C900)); this->addChild(lbVersion, 0); */ auto lbThanks = Label::createWithTTF("Several icons used in this app are from the Google Material Design Icons", FONT_MAIN, 16, Size(DESIGNED_WIDTH, 64), TextHAlignment::CENTER, TextVAlignment::CENTER); lbThanks->setPosition(E::visibleWidth/2, E::originY + BTM_HEIGHT + 24); lbThanks->setAnchorPoint(Vec2(0.5, 0.5)); lbThanks->setColor(C3B(E::P.C900)); this->addChild(lbThanks, 0); //============================================================ m_shareBtnBg = BallButton::create(E::P.C700); m_shareBtnBg->setScale(0.2f); m_shareBtnBg->setPosition(Vec2(E::visibleWidth/2 -(m_shareBtnBg->getContentSize().width*0.35f*2 + 48)/2, -16)); this->addChild(m_shareBtnBg, 0); auto sShareIcon = Sprite::create("ui/b_share.png"); sShareIcon->setColor(C3B(E::P.C50)); sShareIcon->setAnchorPoint(Vec2(0, 0)); m_rateBg = BallButton::create(E::P.C700); m_rateBg->setScale(0.2f); m_rateBg->setPosition(Vec2(E::visibleWidth/2, -16)); this->addChild(m_rateBg, 0); auto sRateIcon = Sprite::create("ui/b_rate.png"); sRateIcon->setColor(C3B(E::P.C50)); sRateIcon->setAnchorPoint(Vec2(0, 0)); m_websiteBtnBg = BallButton::create(E::P.C700); m_websiteBtnBg->setScale(0.2f); m_websiteBtnBg->setPosition(Vec2(E::visibleWidth/2 + (m_shareBtnBg->getContentSize().width*0.35f*2 + 48)/2, -16)); this->addChild(m_websiteBtnBg, 0); auto sWebsiteIcon = Sprite::create("ui/b_website.png"); sWebsiteIcon->setColor(C3B(E::P.C50)); sWebsiteIcon->setAnchorPoint(Vec2(0, 0)); auto shareItem = MenuItemSprite::create( BallButton::create(E::P.C700), BallButton::create(E::P2.C500), CC_CALLBACK_1(S_About::menuCallback, this)); shareItem->setScale(0.35f); shareItem->setTag(TAG_SHARE); shareItem->addChild(sShareIcon); auto rateItem = MenuItemSprite::create( BallButton::create(E::P.C700), BallButton::create(E::P2.C500), CC_CALLBACK_1(S_About::menuCallback, this)); rateItem->setScale(0.35f); rateItem->setTag(TAG_RATE); rateItem->addChild(sRateIcon); auto websiteItem = MenuItemSprite::create( BallButton::create(E::P.C700), BallButton::create(E::P2.C500), CC_CALLBACK_1(S_About::menuCallback, this)); websiteItem->setScale(0.35f); websiteItem->setTag(TAG_WEBSITE); websiteItem->addChild(sWebsiteIcon); // create menu m_menu = Menu::create(shareItem, rateItem, websiteItem, NULL); m_menu->setPosition(Vec2(E::visibleWidth/2, 64 + 4 -16)); m_menu->alignItemsHorizontallyWithPadding(24); m_menu->setEnabled(false); m_menu->setOpacity(0); this->addChild(m_menu, 1); runAnimations(false); return true; }