#c #ogre
#c #ogre
Вопрос:
У меня странная ошибка, которая, похоже, возникает только тогда, когда программа выполняется не с терминала. Вот мой проект:https://github.com/elliotpotts/Troll /
https://github.com/elliotpotts/Troll/issues/2
Посмотрите на функцию Troll::State::keyPressed(). По какой-то причине, когда я запускаю программу с терминала, все в порядке, и приложение существует, но когда я запускаю его как программу с графическим интерфейсом, приложение не завершается. Я не могу понять, почему. Заранее спасибо, ell.
РЕДАКТИРОВАТЬ: Приношу извинения за то, что не добавил тег Ogre и не опубликовал нажатую функцию, вот она:
void Troll::State::keyPressed(const OIS::KeyEventamp; event){
if(event.key == OIS::KC_Q) {
mCreator->stop();
};
};
Я также попытался добавить вывод файла для его тестирования:
void Troll::State::keyPressed(const OIS::KeyEventamp; event){
std::cout << "Q was pressed" << std::endl;
std::fstream file("log");
file << "Q was pressed";
file.close();
if(event.key == OIS::KC_Q) {
mCreator->stop();
};
};
При запуске с терминала это работает, в противном случае — нет. Дополнительное примечание: на данный момент у меня нет функционирующего отладчика, который я также пытаюсь исправить. Элл.
Комментарии:
1. Извините, ничем не могу помочь, но, возможно, добавление тега ogre может привлечь внимание нужных людей.
2. Не могли бы вы скопировать / вставить
keyPressed()
определение сюда?3. Возможно, у платформы GUI есть свой собственный обработчик KeyEvent, который получает ключ?
4. Какой графический интерфейс вы используете? И как вы уведомляете о нажатиях клавиш?
5. Я не использую фреймворк GUI, только систему ввода. Но недавно я обнаружил, что проблема вызвана моей IDE. Должен ли я указать это в ответе и пометить его как правильный?
Ответ №1:
Оказывается, проблема была в IDE, в любом случае спасибо за вашу помощь, ell 🙂