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(); } }
void GameState::nextLevel() { switchLevel(m_currentLevel + 1); }
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(); }