Exemple #1
0
void GameState::onHandleEvent(sf::Event& event) {
    if(event.type == sf::Event::KeyPressed) {
        if(Root().debug) {
            if(event.key.code == sf::Keyboard::Period) {
                m_debugDrawEnabled = !m_debugDrawEnabled;
                message("Debug draws toggled");
            } else if(event.key.code == sf::Keyboard::Comma) {
                m_shadersEnabled = !m_shadersEnabled;
                message("Shaders toggled.");
            } else if(event.key.code == sf::Keyboard::Q) {
                m_player->setAbility((Player::Ability)(((int)m_player->getAbility() + 1) % ((int)Player::RAPPEL + 1)));
                message("Ability: " + std::to_string(m_player->getAbility()));
            } else if(event.key.code == sf::Keyboard::Escape) {
                Root().window->close();
            } else if(event.key.code == sf::Keyboard::Add) {
                switchLevel(m_currentLevel + 1);
            } else if(event.key.code == sf::Keyboard::Subtract) {
                switchLevel(m_currentLevel - 1);
            } else if(event.key.code == sf::Keyboard::H) {
                m_currentHelp = m_levelHelp[m_currentLevelName];
            } else if(event.key.code == sf::Keyboard::Tab) {
                Root().states.push(&Root().editor_state);
                if(m_player) m_player->m_walkSound.pause();
            }
        } else {
            if(event.key.code == sf::Keyboard::Escape) {
                Root().states.pop();
            }
        }
    } else if(event.type == sf::Event::Resized) {
        resize();
    }    
}
Exemple #2
0
void GameState::nextLevel() {
    switchLevel(m_currentLevel + 1);
}
Exemple #3
0
KJezzball::KJezzball()
    : m_gameWidget( 0 )
{
    // setup variables
    m_game.level = 1;
    m_game.score = 0;
    m_state = Idle;

    KConfig *config = kapp->config();
    m_backgroundDir = config->readPathEntry( "BackgroundDir" );
    m_showBackground = config->readBoolEntry( "ShowBackground", false );

    statusBar();
    initXMLUI();

    m_soundAction -> setChecked((config->readBoolEntry( "PlaySounds", true )));

    // create widgets
    m_view = new QWidget( this, "m_view" );
    setCentralWidget( m_view );

    m_layout = new QGridLayout( m_view, 1, 3 );
    m_layout->setColStretch( 2, 1 );

    QVBoxLayout *infoLayout = new QVBoxLayout;
    m_layout->addLayout( infoLayout, 0, 1 );

    QLabel *label = new QLabel( i18n("Level:"), m_view );
    infoLayout->addWidget( label );
    m_levelLCD = new QLCDNumber( 5, m_view );
    infoLayout->addWidget( m_levelLCD );

    label = new QLabel( i18n("Score:"), m_view );
    infoLayout->addWidget( label );
    m_scoreLCD = new QLCDNumber( 5, m_view );
    infoLayout->addWidget( m_scoreLCD );

    infoLayout->addSpacing( 20 );

    label = new QLabel( i18n("Filled area:"), m_view );
    infoLayout->addWidget( label );
    m_percentLCD  = new QLCDNumber( 5, m_view );
    infoLayout->addWidget( m_percentLCD );

    label = new QLabel( i18n("Lives:"), m_view );
    infoLayout->addWidget( label );
    m_lifesLCD  = new QLCDNumber( 5, m_view );
    infoLayout->addWidget( m_lifesLCD );

    label = new QLabel( i18n("Time:"), m_view );
    infoLayout->addWidget( label );
    m_timeLCD  = new QLCDNumber( 5, m_view );
    infoLayout->addWidget( m_timeLCD );

    // create timers
    m_nextLevelTimer = new QTimer( this, "m_nextLevelTimer" );
    connect( m_nextLevelTimer, SIGNAL(timeout()), this, SLOT(switchLevel()) );

    m_gameOverTimer = new QTimer( this, "m_gameOverTimer" );
    connect( m_gameOverTimer, SIGNAL(timeout()), this, SLOT(gameOverNow()) );

    m_timer = new QTimer( this, "m_timer" );
    connect( m_timer, SIGNAL(timeout()), this, SLOT(second()) );

    // create demo game
    createLevel( 1 );
    statusBar()->message( i18n("Press %1 to start a game!")
                          .arg(m_newAction->shortcut().toString()) );
    //m_gameWidget->display( i18n("Press <Space> to start a game!") );

    setFocusPolicy(QWidget::StrongFocus);
    setFocus();
    setupGUI();
}