Changeset 1789 for trunk/test


Ignore:
Timestamp:
Aug 23, 2012, 11:47:46 AM (8 years ago)
Author:
touky
Message:

Added correct implementation of Action layer for Inputs.
Useage :

  • Link action to key :

Input::LinkActionToKey(ACTION_TYPE Action, struct Key Button);
Input::UnlinkAction(ACTION_TYPE Action);

  • Query action directly :

Input::GetStatus(ACTION_TYPE Action);
Input::WasPressed(ACTION_TYPE Action);
Input::WasReleased(ACTION_TYPE Action);

Also works with raw button, but not advised :
Input::GetStatus(Key Button);
Input::WasPressed(Key Button);
Input::WasReleased(Key Button);

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/BtPhysTest.cpp

    r1785 r1789  
    5757#define USE_CHARACTER   1
    5858
    59 enum eInputAction
    60 {
    61         IPT_MOVE_FORWARD,
    62         IPT_MOVE_BACKWARD,
    63         IPT_MOVE_STRAFE_LEFT,
    64         IPT_MOVE_STRAFE_RIGHT,
    65         IPT_MOVE_JUMP,
    66 };
     59#define IPT_MOVE_FORWARD                "Move_Forward"
     60#define IPT_MOVE_BACKWARD               "Move_Backward"
     61#define IPT_MOVE_STRAFE_LEFT    "Strafe_Left"
     62#define IPT_MOVE_STRAFE_RIGHT   "Strafe_right"
     63#define IPT_MOVE_JUMP                   "Move_Jump"
    6764
    6865BtPhysTest::BtPhysTest(bool editor)
     
    173170
    174171
    175                 Input::LinkActionIdToButtonId(IPT_MOVE_FORWARD,                 LOLK_UP);
    176                 Input::LinkActionIdToButtonId(IPT_MOVE_BACKWARD,                LOLK_DOWN);
    177                 Input::LinkActionIdToButtonId(IPT_MOVE_STRAFE_LEFT,             LOLK_LEFT);
    178                 Input::LinkActionIdToButtonId(IPT_MOVE_STRAFE_RIGHT,    LOLK_RIGHT);
    179                 Input::LinkActionIdToButtonId(IPT_MOVE_JUMP,                    LOLK_SPACE);
     172                Input::LinkActionToKey(IPT_MOVE_FORWARD,                Key::K_UP);
     173                Input::LinkActionToKey(IPT_MOVE_BACKWARD,               Key::K_DOWN);
     174                Input::LinkActionToKey(IPT_MOVE_STRAFE_LEFT,    Key::K_LEFT);
     175                Input::LinkActionToKey(IPT_MOVE_STRAFE_RIGHT,   Key::K_RIGHT);
     176                Input::LinkActionToKey(IPT_MOVE_JUMP,                   Key::K_SPACE);
    180177
    181178                //NewPhyobj->GetCharacter()->AttachTo(BasePhyobj->GetPhysic(), true, true);
     
    318315                        mat4 CtlrMx = Character->GetTransform();
    319316                       
    320                         int HMovement = Input::GetActionStatus(IPT_MOVE_STRAFE_LEFT) - Input::GetActionStatus(IPT_MOVE_STRAFE_RIGHT);
     317                        int HMovement = Input::GetActionStatus(IPT_MOVE_STRAFE_RIGHT) - Input::GetActionStatus(IPT_MOVE_STRAFE_LEFT);
    321318                        int VMovement = Input::GetActionStatus(IPT_MOVE_FORWARD) - Input::GetActionStatus(IPT_MOVE_BACKWARD);
    322319                        int RMovement = 0;//Input::GetButtonState(280 /*SDLK_PAGEUP*/) - Input::GetButtonState(281 /*SDLK_PAGEDOWN*/);
    323320                        vec3 CharMove = vec3((float)VMovement * seconds * 4.f, (float)RMovement * seconds * 10.f, (float)HMovement * seconds * 4.f);
    324321
    325                         if (Input::WasActionJustReleased(IPT_MOVE_JUMP))
     322                        if (Input::WasReleased(IPT_MOVE_JUMP))
    326323                                Character->Jump();
    327324                        Character->SetMovementForFrame(CharMove);
Note: See TracChangeset for help on using the changeset viewer.