Суббота, 07 Декабря 2019, 12:56

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » C/C++ » Irrlicht Engine 1.7.2: Обработка клавиш на C++ (Обработка клавиш)
Irrlicht Engine 1.7.2: Обработка клавиш на C++
Snake174Дата: Понедельник, 09 Апреля 2012, 11:55 | Сообщение # 1
участник
Сейчас нет на сайте
Всем привет.
Суть такова: делаю меню настроек управления. Нужно, чтобы при нажатии клавиши в EditBox заносилось её название. Например, нажимаем KEY_CONTROL, а в EditBox заносится CTRL.
Создал класс-наследник от IEventReceiver. Проблема в том, что программа не заходит в событие EET_KEY_INPUT_EVENT.
Вот сам класс:
Code

class COptionsReceiver : public IEventReceiver
{
    CGameManager *gameManager;
    COptionState *optState;

    public:
      COptionsReceiver( CGameManager *gm, COptionState *os ):
        gameManager( gm ),
        optState( os )
      {
      }

      // This is the one method that we have to implement
      virtual bool OnEvent( const SEvent &event )
      {
        // ВОТ СЮДА НЕ ЗАХОДИТ
        if (event.EventType == EET_KEY_INPUT_EVENT)
        {
          std::cout << "EET_KEY_INPUT_EVENT\n";
          return true;
        }

        if (event.EventType == EET_GUI_EVENT)
        {
          IGUIElement *pCaller = event.GUIEvent.Caller;
          s32 id = pCaller->getID();

          switch (event.GUIEvent.EventType)
          {
            case EGET_EDITBOX_CHANGED:
              {
                IGUIEditBox *editBox = (IGUIEditBox *)pCaller;

                if (editBox)
                {
                  SKeyCodes keyCodes;

                  // подставляем название клавиши
                  editBox->setText( keyCodes.getKeyName( event.KeyInput.Key ).c_str() );

                  return true;
                }

                return false;
              }
          }
        }

        return false;
      }
};

Если написать editBox->setText( keyCodes.getKeyName( KEY_CONTROL ).c_str() ), всё работает как надо.
Заранее спасибо.


Не следует обманывать инспектора
Pipmak Assistant
Love2D Exporter
Love2D-Helpers
Old Consoles Games
Форум игроделов » Программирование » C/C++ » Irrlicht Engine 1.7.2: Обработка клавиш на C++ (Обработка клавиш)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2019 Рейтинг