TapestryEngine

A 2D Platformer Game Engine
Log | Files | Refs

6ffbd1fd3c646cfa06b407170b9ea0e2412f9a8f.svn-base (562B)


      1 #include "Input.h"
      2 
      3 Control::Control()
      4 {
      5 	mKeyState = SDL_GetKeyboardState(NULL);
      6 	memcpy(mLastState, mKeyState, 512);
      7 }
      8 
      9 bool Control::SendKeyEvent(int KeyID, int KeyState)
     10 {
     11 	EventType et;
     12 	if (KeyState == 1)
     13 	{
     14 		et = KEY_DOWN;
     15 	}
     16 	else // KeyState == 0
     17 	{
     18 		et = KEY_UP;
     19 	}
     20 	mFeed.EventProcess(Event(et, KeyID));
     21 
     22 	return true;
     23 }
     24 
     25 void Control::ProcessKeyboard()
     26 {
     27 	SDL_PumpEvents(); //Update *mKeys
     28 
     29 	for (int i = 0; i < 512; i++)
     30 	{
     31 		if (mLastState[i] != mKeyState[i])
     32 		{
     33 			SendKeyEvent(i, mKeyState[i]);
     34 		}
     35 	}
     36 
     37 	memcpy(mLastState, mKeyState, 512);
     38 }
     39