Beispiel #1
0
void GameWorld::bindKeys() {
    bindKey(MoveForward, Qt::Key_W);
    bindKey(MoveBackward, Qt::Key_S);
    bindKey(MoveLeft, Qt::Key_A);
    bindKey(MoveRight, Qt::Key_D);
    bindKey(Hold, Qt::LeftButton);
    bindKey(Sprint, Qt::Key_Shift);
    bindKey(Jump, Qt::Key_Space);
    bindKey(Exit, Qt::Key_Backspace);
}
Beispiel #2
0
void InputService::onEnable()
{
	bindings.clear();

	bindKey(KEY_UP, sf::Keyboard::W);
	bindKey(KEY_LEFT, sf::Keyboard::A);
	bindKey(KEY_DOWN, sf::Keyboard::S);
	bindKey(KEY_RIGHT, sf::Keyboard::D);
	bindKey(KEY_YIELD_CONTROL, sf::Keyboard::Tab);
	bindKey(KEY_SPRINT, sf::Keyboard::Space);
	bindKey(KEY_EXIT, sf::Keyboard::Escape);
	// todo load from config

	// check all keys have been registered
	if (bindings.left.size() != KEY_UNKNOWN)
	{
		Logger::logError(format("Expected %1% key bindings, received %2% instead",
								_str(KEY_UNKNOWN), _str(bindings.left.size())));

		error("Invalid number of key bindings");
	}

	// listen to input events
	auto events = Locator::locate<EventService>();
	events->registerListener(this, EVENT_RAW_INPUT_KEY);
	events->registerListener(this, EVENT_RAW_INPUT_CLICK);
}
Beispiel #3
0
// Bind an alternate key to a command.
void QsciCommand::setAlternateKey(int altkey)
{
    bindKey(altkey,qaltkey,scialtkey);
}
Beispiel #4
0
// Bind a key to a command.
void QsciCommand::setKey(int key)
{
    bindKey(key,qkey,scikey);
}
Beispiel #5
0
int Menu::update(sf::Vector2i mousePos)
{
    if (isBinding)
    {
        bindKey();
    }
    else
    {
        for(unsigned int i = 0; i < mainMenu.size(); ++i)
        {
            if(mainMenu[i]->update(mousePos))
            {
                switch(i)
                {
                    case 0: //single player
                        for (unsigned int a = 0; a < mainMenu.size(); ++a)
                        {
                            mainMenu[a]->setVisible(false);
                        }
                        for (unsigned int a = 0; a < singleMenu.size(); ++a)
                        {
                            singleMenu[a]->setVisible(true);
                        }
                        break;
                    case 1: //multi player
                        return 5;
                        break;
                    case 2: //go to settings
                        for (unsigned int a = 0; a < mainMenu.size(); ++a)
                        {
                            mainMenu[a]->setVisible(false);
                        }
                        for (unsigned int a = 0; a < settingsMenu.size(); ++a)
                        {
                            settingsMenu[a]->setVisible(true);
                        }

                        background.setTexture(&settingsBackgroundTexture);
                        isBinding = false;
                        break;
                    case 3: //exit
                        return 10;
                        break;
                }
            }
        }

        for(unsigned int i = 0; i < settingsMenu.size(); ++i)
        {
            if (settingsMenu[i]->update(mousePos))
            {
                switch(i)
                {
                    case 0: //back
                        for (unsigned int a = 0; a < mainMenu.size(); ++a)
                        {
                            mainMenu[a]->setVisible(true);
                        }
                        for (unsigned int a = 0; a < settingsMenu.size(); ++a)
                        {
                            settingsMenu[a]->setVisible(false);
                        }
                        updateTips();
                        background.setTexture(&mainBackgroundTexture);
                        writeSettings();
                        break;
                    case 1:     //music down
                        settings.musicVolume--;
                        if (settings.musicVolume < 0)
                        {
                            settings.musicVolume = 0;
                        }
                        updateSettings();
                        break;
                    case 2:     //music up
                        settings.musicVolume++;
                        if (settings.musicVolume > 10)
                        {
                            settings.musicVolume = 10;
                        }
                        updateSettings();
                        break;
                    case 3:     //effects down
                        settings.effectVolume--;
                        if (settings.effectVolume < 0)
                        {
                            settings.effectVolume = 0;
                        }
                        updateSettings();
                        break;
                    case 4:     //effects up
                        settings.effectVolume++;
                        if (settings.effectVolume > 10)
                        {
                            settings.effectVolume = 10;
                        }
                        updateSettings();
                        break;
                    case 5:     //enable mouse
                        settings.enableMouse = !settings.enableMouse;
                        updateSettings();
                        break;
                    case 6:     //select after upgrade
                        settings.selectAfterUpgrade = !settings.selectAfterUpgrade;
                        updateSettings();
                        break;
                    default:
                        sprintf(bindMessage, "Press the escape key to exit.\n\nPress the new key for %s", hotkeyNames[i - 7]);
                        isBinding = true;
                        currentKey = i;
                        updateSettings();
                        break;
                }
            }
        }

        for (unsigned int i = 0; i < singleMenu.size(); ++i)
        {
            if(singleMenu[i]->update(mousePos))
            {
                switch(i)
                {
                    case 0: //back button
                        for (unsigned int a = 0; a < mainMenu.size(); ++a)
                        {
                            mainMenu[a]->setVisible(true);
                        }
                        for (unsigned int a = 0; a < singleMenu.size(); ++a)
                        {
                            singleMenu[a]->setVisible(false);
                        }
                        updateTips();
                        break;
                    case 1: //mission 1
                        return 1;
                        break;
                    case 2: //mission 2
                        return 2;
                        break;
                    case 3: //mission 3
                        return 3;
                        break;
                    case 4: //mission 4
                        return 4;
                        break;
                }
            }
        }
    }

    return 0;
}
Beispiel #6
0
static void bindWhereClause(SQLiteStatement& query, int64_t id, IDBKey* key)
{
    query.bindInt64(1, id);
    bindKey(query, 2, key);
}