just feel like sharing my event receiver. I tried keeping it as simple as I could. Works fine at 300 FPS.
Code: Select all
class MyEventReceiver : public IEventReceiver
{
public:
virtual bool OnEvent(const SEvent& event)
{
if (event.EventType == irr::EET_KEY_INPUT_EVENT)
{
if(KeyWasDown[event.KeyInput.Key]) KeyIsDown[event.KeyInput.Key]= true;
KeyWasDown[event.KeyInput.Key] = event.KeyInput.PressedDown;
return false;
}
}
virtual bool IsKeyDown(EKEY_CODE keyCode)
{
if(KeyIsDown[keyCode])
{
KeyIsDown[keyCode]= false;
return true;
}
return false;
}
MyEventReceiver()
{
for (u32 i=0; i<KEY_KEY_CODES_COUNT; ++i)
KeyIsDown[i] = false;
}
private:
bool KeyIsDown[KEY_KEY_CODES_COUNT];
bool KeyWasDown[KEY_KEY_CODES_COUNT];
};