Irrlicht:无法调用 onEvent
Irrlicht : can't call onEvent
我是 irrlicht 的新手,我正在尝试实现关键事件。我遵循了他们网站上的 irrlicht 教程,但它不起作用。
代码如下:
class MyEventReceiver : public irr::IEventReceiver
{
public:
MyEventReceiver()
{
for (irr::u32 i = 0; i < irr::KEY_KEY_CODES_COUNT; ++i)
KeyIsDown[i] = false;
}
virtual bool OnEvent(const irr::SEvent& event)
{
std::cout << event.EventType << std::endl;
if (event.EventType == irr::EET_KEY_INPUT_EVENT)
KeyIsDown[event.KeyInput.Key] = event.KeyInput.PressedDown;
return (false);
}
virtual bool IsKeyDown(irr::EKEY_CODE keyCode) const
{
return (KeyIsDown[keyCode]);
}
private:
bool KeyIsDown[irr::KEY_KEY_CODES_COUNT];
};
通常情况下,如果我按下一个按钮,onEvent 应该被调用,但我可以按下我想要的任何按钮,它永远不会调用这个函数。当然,我在 main.
中创建了一个 MyEventReceiver
请知道 irrlicht 的人可以帮助我吗?
我遇到了同样的问题,这是因为你创建了它但你在创建设备时没有提供它:像这样,IrrlichtDevice* device = createDevice(driverType,
core::dimension2d<u32>(640, 480), 16, false, false, false, --->&receiver<---);
我是 irrlicht 的新手,我正在尝试实现关键事件。我遵循了他们网站上的 irrlicht 教程,但它不起作用。
代码如下:
class MyEventReceiver : public irr::IEventReceiver
{
public:
MyEventReceiver()
{
for (irr::u32 i = 0; i < irr::KEY_KEY_CODES_COUNT; ++i)
KeyIsDown[i] = false;
}
virtual bool OnEvent(const irr::SEvent& event)
{
std::cout << event.EventType << std::endl;
if (event.EventType == irr::EET_KEY_INPUT_EVENT)
KeyIsDown[event.KeyInput.Key] = event.KeyInput.PressedDown;
return (false);
}
virtual bool IsKeyDown(irr::EKEY_CODE keyCode) const
{
return (KeyIsDown[keyCode]);
}
private:
bool KeyIsDown[irr::KEY_KEY_CODES_COUNT];
};
通常情况下,如果我按下一个按钮,onEvent 应该被调用,但我可以按下我想要的任何按钮,它永远不会调用这个函数。当然,我在 main.
中创建了一个 MyEventReceiver请知道 irrlicht 的人可以帮助我吗?
我遇到了同样的问题,这是因为你创建了它但你在创建设备时没有提供它:像这样,IrrlichtDevice* device = createDevice(driverType,
core::dimension2d<u32>(640, 480), 16, false, false, false, --->&receiver<---);