(十一) 关于游戏场景

最后更新于:2022-04-01 16:12:29

这个场景作为弹出场景,主要介绍下游戏。。。还有自己的联系方式(*^__^*) …… 主要使用文本,就一个返回按键的响应函数 ~~~ //返回按钮 void back(EventKeyboard::KeyCode keyCode, Event* pEvent); ~~~ 同样要记得在析构函数中移除监听 ~~~ AboutGame::~AboutGame() { _eventDispatcher->removeEventListenersForTarget(this); } ~~~ 文本已在XML文件中生成,直接调用即可 ~~~ bool AboutGame::init() { if (!Layer::init()) return false; //背景音乐 CocosDenshion::SimpleAudioEngine::getInstance()->stopBackgroundMusic(true); CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("sound/BackgroundMusic1.mp3", true); bool bRect = false; do { auto size = Director::getInstance()->getWinSize(); //设置背景图片 auto m_background = Sprite::createWithSpriteFrameName("backgroundTollgateOne.png"); m_background->setPosition(Vec2(size.width/2,size.height/2)); m_background->setAnchorPoint(Vec2(0.5, 0.5)); this->addChild(m_background); //设置监听器 auto m_listener = EventListenerKeyboard::create(); m_listener->onKeyReleased = CC_CALLBACK_2(AboutGame::back, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(m_listener, this); //设置标签 并 获取中文文本 auto dictionary = Dictionary::createWithContentsOfFile("fonts/AboutMe.xml"); auto m_label3 = Label::createWithTTF( ((__String*)(dictionary->objectForKey("Others")))->getCString(), "fonts/DFPShaoNvW5-GB.ttf", 25 ); m_label3->setDimensions(size.width / 3 * 2, size.height / 2); m_label3->setColor(Color3B(255, 255, 255)); m_label3->setPosition(Point(size.width / 2, size.height/2)); this->addChild(m_label3); auto m_label1 = Label::createWithTTF( ((__String*)(dictionary->objectForKey("AboutMe")))->getCString(), "fonts/DFPShaoNvW5-GB.ttf", 35 ); m_label1->setColor(Color3B(255, 0, 0)); m_label1->setPosition( Point(size.width/2, size.height-m_label3->getContentSize().height-m_label1->getContentSize().height) ); this->addChild(m_label1); auto m_label2 = Label::createWithTTF( ((__String*)(dictionary->objectForKey("QQ")))->getCString(), "fonts/DFPShaoNvW5-GB.ttf", 25 ); m_label2->setDimensions(size.width / 3 * 2, size.height / 6); m_label2->setColor(Color3B(0, 255, 0)); m_label2->setPosition(Point(size.width / 2, m_label1->getPositionY() - m_label2->getContentSize().height)); this->addChild(m_label2); bRect = true; } while (0); return bRect; } //返回按钮 void AboutGame::back(EventKeyboard::KeyCode keyCode, Event* pEvent) { if (keyCode == EventKeyboard::KeyCode::KEY_ESCAPE) { //背景音乐 CocosDenshion::SimpleAudioEngine::getInstance()->stopBackgroundMusic(true); CocosDenshion::SimpleAudioEngine::getInstance()->playBackgroundMusic("sound/game_start.mp3", true); Director::getInstance()->popScene(); } } ~~~
';