void SceneBase::onKeyPressed(cocos2d::EventKeyboard::KeyCode keyCode, cocos2d::Event* event)
{
    LOGAK("<onKeyPressed> keyCode:%d", keyCode);
    switch (keyCode) {
    case EventKeyboard::KeyCode::KEY_F1:
    case EventKeyboard::KeyCode::KEY_MENU:  // for Android
	if (m_szHelp.empty())
	    cocos2d::MessageBox("No help is available for this page", "Help");
	else
	    cocos2d::MessageBox(m_szHelp.c_str(), "Help");
	break;

    case EventKeyboard::KeyCode::KEY_ESCAPE:
	menuCloseCallback(NULL);
	return;

    case EventKeyboard::KeyCode::KEY_UP_ARROW:
	if (m_lastMenuIx > 0) m_lastMenuIx--;
	setMenuColor(m_lastMenuIx);
	break;
    case EventKeyboard::KeyCode::KEY_DOWN_ARROW:
	if (m_lastMenuIx < (int)m_menu.size()) m_lastMenuIx++;
	setMenuColor(m_lastMenuIx);
	break;
    case EventKeyboard::KeyCode::KEY_KP_ENTER:
    {
	g_menu_ix = m_lastMenuIx;
	if ((int)m_funcEnt.size()>m_lastMenuIx)
	{
	    auto scene = m_funcEnt[m_lastMenuIx]();
	    if (scene) {
		Director::getInstance()->replaceScene((cocos2d::Scene *)scene);
		this->removeAllChildren();
	    }
	}
	else {
	    onNotImplemented(NULL);
	}
    }
    break;

    default:
	//SceneBase::onKeyPressed(keyCode, event);
	return;
    }
}
Ejemplo n.º 2
0
Menu* MyMenu::CreateMenu()
{
	//create menu
	auto MenuItem_Game = MenuItemFont::create("Start Game");
	MenuItem_Game->setCallback([&](Ref *sender) {
		Director::getInstance()->replaceScene(TransitionFlipX::create(1, BlueScene::createScene()));
	});
	auto MenuItem_About = MenuItemFont::create("About");
	MenuItem_About->setCallback([&](Ref *sender) {
		//Director::getInstance()->replaceScene(TransitionFlipX::create(1, AboutScene::createScene()));
	});
	auto MenuItem_Exit = MenuItemFont::create("Exit");
	MenuItem_Exit->setCallback([&](Ref *sender) {
		menuCloseCallback(sender);
	});

	Vector<MenuItem*> items;
	items.pushBack(MenuItem_Game); items.pushBack(MenuItem_About); items.pushBack(MenuItem_Exit);

	auto menu = Menu::createWithArray(items);
	menu->alignItemsVerticallyWithPadding(20);

	return menu;
}
Ejemplo n.º 3
0
void EpisodeLockedScene::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event)
{
	if (keyCode == EventKeyboard::KeyCode::KEY_ESCAPE)
		menuCloseCallback(this);
}