Irrlicht Keypresses

时间:2014-01-10 11:20:25

标签: c++ keyboard irrlicht

我正在努力在Irrlicht中编写按键。

我已经创建了一个事件记录器:

class MyEventReceiver : public IEventReceiver
{
    virtual bool OnEvent(const SEvent& event)
    {
        if (event.EventType == irr::EET_KEY_INPUT_EVENT)
        {
            KeyIsDown[event.KeyInput.Key] = event.KeyInput.PressedDown;
            {
                if (event.EventType == irr::EET_KEY_INPUT_EVENT&&!event.KeyInput.PressedDown)
                    switch(event.KeyInput.Key)
                    {
                        case KEY_KEY_1:
                        case KEY_KEY_2:
                        case KEY_KEY_3:
                    }
                return true;
            }
        }
         return false;
    }

virtual bool IsKeyDown(EKEY_CODE keyCode) const
{
    return KeyIsDown[keyCode];
}

MyEventReceiver()
{
    memset(KeyIsDown, false, sizeof(KeyIsDown));
}

private:
    bool KeyIsDown[KEY_KEY_CODES_COUNT];
};

这一切似乎都是这样的。但是,在“while(device-> run())”中,我实现了:

if(receiver.IsKeyDown(irr::KEY_KEY_1))
{

}

我的收件人收到错误“标识符接收器未定义”。在我看到的所有例子中,我看到这个接收器变量没有声明,他们声称它有效。我做错了什么?

我正在构建示例项目“LoadIrrFile”(#15)。

计划是为钥匙1-3实施武器开关。 应该能够在我初始化按键时获取代码。

我正在使用我在此处找到的代码段:http://irrlicht.sourceforge.net/forum//viewtopic.php?p=143082

如果需要更多信息,请参阅完整的代码段:http://pastie.org/pastes/8620301/text

1 个答案:

答案 0 :(得分:0)

该片段只有一个补丁。 {(1}}未在main()中声明。看看http://irrlicht.sourceforge.net/docu/example004.html处的“完整”示例。您的代码缺少某些内容(来自上面链接中的示例):

receiver