首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Irrlicht按键

Irrlicht按键
EN

Stack Overflow用户
提问于 2014-01-10 11:20:24
回答 1查看 1.7K关注 0票数 0

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

我创造了这样一个事件累犯:

代码语言:javascript
复制
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())“中,我实现了:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2014-01-10 12:27:01

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

代码语言:javascript
复制
MyEventReceiver receiver; // declare it
IrrlichtDevice* device = createDevice(driverType,
        core::dimension2d<u32>(640, 480), 16, false, false, false, &receiver); // use it here
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21043000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档