From 12077fb819a10990a3165adb387a3cc77faef0cc Mon Sep 17 00:00:00 2001 From: yboucher <yann.boucher@etu.utc.fr> Date: Fri, 11 Jun 2021 23:02:30 +0200 Subject: [PATCH] =?UTF-8?q?On=20peut=20maintenant=20jouer=20=C3=A0=20Snake?= =?UTF-8?q?=20avec=20les=20fl=C3=A8ches?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/interface.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/interface.cpp b/src/interface.cpp index 09e673b..862c2f1 100644 --- a/src/interface.cpp +++ b/src/interface.cpp @@ -750,9 +750,12 @@ void MainWindow::play_snake() on_pushButton_clicked(); // reset la grille + QWidget::grabKeyboard(); + static auto restore = [&] { ui_update_alphabet(simulation.getAlphabet()); + QWidget::releaseKeyboard(); snake_timer.stop(); on_pushButton_clicked(); // reset la grille }; @@ -889,26 +892,26 @@ void MainWindow::closeEvent(QCloseEvent *e) void MainWindow::keyPressEvent(QKeyEvent *event) { - if (event->key() == Qt::Key_Q) + if (event->key() == Qt::Key_Q || event->key() == Qt::Key_Left) m_arrow_key_state[0] = true; - if (event->key() == Qt::Key_S) + if (event->key() == Qt::Key_S || event->key() == Qt::Key_Down) m_arrow_key_state[1] = true; - if (event->key() == Qt::Key_D) + if (event->key() == Qt::Key_D || event->key() == Qt::Key_Right) m_arrow_key_state[2] = true; - if (event->key() == Qt::Key_Z) + if (event->key() == Qt::Key_Z || event->key() == Qt::Key_Up) m_arrow_key_state[3] = true; QMainWindow::keyPressEvent(event); } void MainWindow::keyReleaseEvent(QKeyEvent *event) { - if (event->key() == Qt::Key_Q) + if (event->key() == Qt::Key_Q || event->key() == Qt::Key_Left) m_arrow_key_state[0] = false; - if (event->key() == Qt::Key_S) + if (event->key() == Qt::Key_S || event->key() == Qt::Key_Down) m_arrow_key_state[1] = false; - if (event->key() == Qt::Key_D) + if (event->key() == Qt::Key_D || event->key() == Qt::Key_Right) m_arrow_key_state[2] = false; - if (event->key() == Qt::Key_Z) + if (event->key() == Qt::Key_Z || event->key() == Qt::Key_Up) m_arrow_key_state[3] = false; QMainWindow::keyReleaseEvent(event); } -- GitLab