Я начал работать с QT и хочу запрограммировать небольшую игру под названием Pong (2 игрока и мяч).Левого игрока следует перемещать с помощью клавиш «W» и «S», правого - с помощью клавиш со стрелками вверх и вниз.У меня есть класс Game для управления моей анимацией.Там у меня есть фильтр событий для обработки keyPress
bool Game::eventFilter(QObject *target, QEvent *e)
{
Q_UNUSED(target);
bool handled = false;
if(e->type() == QEvent::KeyPress)
{
QKeyEvent *keyEvent = (QKeyEvent *)e;
if(keyEvent->key() == Qt::Key_W)
{
leftPlayerDir = ((leftPlayerDir == 0) ? 5 : leftPlayerDir);
handled = true;
}
else if(keyEvent->key() == Qt::Key_S)
{
leftPlayerDir = ((leftPlayerDir == 0) ? -5 : leftPlayerDir);
handled = true;
}
else if(keyEvent->key() == Qt::Key_Up)
{
rightPlayerDir = ((rightPlayerDir == 0) ? 5 : rightPlayerDir);
handled = true;
}
else if(keyEvent->key() == Qt::Key_Down)
{
rightPlayerDir = ((rightPlayerDir == 0) ? -5 : rightPlayerDir);
handled = true;
}
}
return handled;
}
, а в моем классе Понг, где я настраиваю Основное окно и обрабатываю кнопки, у меня есть строка для установки фильтра событий
ui->animation->installEventFilter(game);
Если я запускаю свою программу, анимация работает, но игроки не двигаются по нажатию клавиши, и я не знаю почему.Некоторые идеи?