Changeset 2838


Ignore:
Timestamp:
Aug 2, 2013, 5:50:39 PM (6 years ago)
Author:
sam
Message:

test: port the btphystest and meshviewer tests to the new input API.

Location:
trunk/test
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/btphystest.cpp

    r2816 r2838  
    3434#define USE_PLATFORM    1
    3535#define USE_ROPE        0
    36 #define USE_BODIES        1
     36#define USE_BODIES      1
    3737#define USE_ROTATION    0
    38 #define USE_CHARACTER    1
    39 #define USE_STAIRS        1
    40 
    41 #define    IPT_MOVE_FORWARD        "Move_Forward"
    42 #define    IPT_MOVE_BACKWARD        "Move_Backward"
    43 #define    IPT_MOVE_LEFT            "Move_Left"
    44 #define    IPT_MOVE_RIGHT            "Move_Right"
    45 #define    IPT_MOVE_UP                "Move_Up"
    46 #define    IPT_MOVE_DOWN            "Move_Down"
    47 #define    IPT_MOVE_JUMP            "Move_Jump"
     38#define USE_CHARACTER   1
     39#define USE_STAIRS      1
    4840
    4941BtPhysTest::BtPhysTest(bool editor)
    5042{
    5143    m_loop_value = .0f;
     44
     45    /* Register an input controller for the keyboard */
     46    m_controller = new Controller(KEY_MAX, 0);
     47    m_controller->GetKey(KEY_MOVE_FORWARD).Bind("Keyboard", "Up");
     48    m_controller->GetKey(KEY_MOVE_BACK).Bind("Keyboard", "Down");
     49    m_controller->GetKey(KEY_MOVE_LEFT).Bind("Keyboard", "Left");
     50    m_controller->GetKey(KEY_MOVE_RIGHT).Bind("Keyboard", "Right");
     51    m_controller->GetKey(KEY_MOVE_JUMP).Bind("Keyboard", "Space");
     52    m_controller->GetKey(KEY_MOVE_UP).Bind("Keyboard", "PageUp");
     53    m_controller->GetKey(KEY_MOVE_DOWN).Bind("Keyboard", "PageDown");
     54    m_controller->GetKey(KEY_QUIT).Bind("Keyboard", "Escape");
    5255
    5356    /* Create a camera that matches the settings of XNA BtPhysTest */
     
    196199        m_character_list << NewPhyobj;
    197200        Ticker::Ref(NewPhyobj);
    198 
    199 
    200         Input::LinkActionToKey(IPT_MOVE_FORWARD,        Key::Up);
    201         Input::LinkActionToKey(IPT_MOVE_BACKWARD,        Key::Down);
    202         Input::LinkActionToKey(IPT_MOVE_LEFT,            Key::Left);
    203         Input::LinkActionToKey(IPT_MOVE_RIGHT,            Key::Right);
    204         Input::LinkActionToKey(IPT_MOVE_JUMP,            Key::Space);
    205         Input::LinkActionToKey(IPT_MOVE_UP,                Key::PageUp);
    206         Input::LinkActionToKey(IPT_MOVE_DOWN,            Key::PageDown);
    207201
    208202        //NewPhyobj->GetCharacter()->AttachTo(BasePhyobj->GetPhysic(), true, true);
     
    259253    WorldEntity::TickGame(seconds);
    260254
    261     if (Input::WasReleased(Key::Escape))
     255    if (m_controller->GetKey(KEY_QUIT).IsReleased())
    262256        Ticker::Shutdown();
    263257
     
    345339            mat4 CtlrMx = Character->GetTransform();
    346340
    347             int HMovement = Input::GetStatus(IPT_MOVE_RIGHT) - Input::GetStatus(IPT_MOVE_LEFT);
    348             int VMovement = Input::GetStatus(IPT_MOVE_FORWARD) - Input::GetStatus(IPT_MOVE_BACKWARD);
    349             int RMovement = Input::GetStatus(IPT_MOVE_UP) - Input::GetStatus(IPT_MOVE_DOWN);
    350             vec3 CharMove = vec3((float)VMovement * seconds * 4.f, (float)RMovement * seconds * 10.f, (float)HMovement * seconds * 4.f);
    351 
    352             if (Input::WasReleased(IPT_MOVE_JUMP))
     341            vec3 movement(0.f);
     342            movement.z = (m_controller->GetKey(KEY_MOVE_RIGHT).IsDown() ? 1.f : 0.f)
     343                       - (m_controller->GetKey(KEY_MOVE_LEFT).IsDown() ? 1.f : 0.f);
     344            movement.x = (m_controller->GetKey(KEY_MOVE_FORWARD).IsDown() ? 1.f : 0.f)
     345                       - (m_controller->GetKey(KEY_MOVE_BACK).IsDown() ? 1.f : 0.f);
     346            movement.y = (m_controller->GetKey(KEY_MOVE_UP).IsDown() ? 1.f : 0.f)
     347                       - (m_controller->GetKey(KEY_MOVE_DOWN).IsDown() ? 1.f : 0.f);
     348            vec3 CharMove = movement * seconds * vec3(4.f, 10.f, 4.f);
     349
     350            if (m_controller->GetKey(KEY_MOVE_JUMP).IsReleased())
    353351                Character->Jump();
    354352            Character->SetMovementForFrame(CharMove);
  • trunk/test/btphystest.h

    r2816 r2838  
    2222
    2323private:
     24    enum
     25    {
     26        KEY_MOVE_FORWARD,
     27        KEY_MOVE_BACK,
     28        KEY_MOVE_LEFT,
     29        KEY_MOVE_RIGHT,
     30        KEY_MOVE_UP,
     31        KEY_MOVE_DOWN,
     32        KEY_MOVE_JUMP,
     33        KEY_QUIT,
     34        KEY_MAX,
     35    };
     36
    2437    Camera*                     m_camera;
     38    Controller *                m_controller;
    2539    Light *                     m_light1;
    2640    Light *                     m_light2;
  • trunk/test/meshviewer.cpp

    r2816 r2838  
    2727LOLFX_RESOURCE_DECLARE(shinymvtexture);
    2828
    29 #define    IPT_CAM_RESET          "Cam_Center"
    30 #define    IPT_CAM_FORWARD        "Cam_Forward"
    31 #define    IPT_CAM_BACKWARD       "Cam_Backward"
    32 #define    IPT_CAM_ZOOM_OUT       "Cam_Zoom_In"
    33 #define    IPT_CAM_ZOOM_IN        "Cam_Zoom_Out"
    34 
    35 #define    IPT_MESH_UPDATE        "Mesh_Update"
    36 #define    IPT_MESH_RESET         "Mesh_Reset"
    37 #define    IPT_MESH_PREV          "Mesh_Previous"
    38 #define    IPT_MESH_NEXT          "Mesh_Next"
    39 
    40 #define    IPT_MESH_LEFT          "Mesh_Left"
    41 #define    IPT_MESH_RIGHT         "Mesh_Right"
    42 #define    IPT_MESH_UP            "Mesh_Up"
    43 #define    IPT_MESH_DOWN          "Mesh_Down"
    44 #define    IPT_MESH_SCALE_UP      "Mesh_Scale_Up"
    45 #define    IPT_MESH_SCALE_DOWN    "Mesh_Scale_Down"
    46 #define    IPT_MESH_OFFSET_UP     "Mesh_Offset_Up"
    47 #define    IPT_MESH_OFFSET_DOWN   "Mesh_Offset_Down"
    48 #define    IPT_MESH_ROT_LEFT      "Mesh_Rot_Left"
    49 #define    IPT_MESH_ROT_RIGHT     "Mesh_Rot_Right"
    50 #define    IPT_MESH_ROT_UP        "Mesh_Rot_Up"
    51 #define    IPT_MESH_ROT_DOWN      "Mesh_Rot_Down"
     29enum
     30{
     31    KEY_CAM_RESET,
     32    KEY_CAM_FORWARD,
     33    KEY_CAM_BACKWARD,
     34    KEY_CAM_ZOOM_OUT,
     35    KEY_CAM_ZOOM_IN,
     36
     37    KEY_MESH_UPDATE,
     38    KEY_MESH_RESET,
     39    KEY_MESH_PREV,
     40    KEY_MESH_NEXT,
     41
     42    KEY_MESH_LEFT,
     43    KEY_MESH_RIGHT,
     44    KEY_MESH_UP,
     45    KEY_MESH_DOWN,
     46    KEY_MESH_SCALE_UP,
     47    KEY_MESH_SCALE_DOWN,
     48    KEY_MESH_OFFSET_UP,
     49    KEY_MESH_OFFSET_DOWN,
     50    KEY_MESH_ROT_LEFT,
     51    KEY_MESH_ROT_RIGHT,
     52    KEY_MESH_ROT_UP,
     53    KEY_MESH_ROT_DOWN,
     54
     55    KEY_F1,
     56    KEY_F2,
     57    KEY_F3,
     58    KEY_F4,
     59    KEY_F5,
     60    KEY_ESC,
     61
     62    KEY_MAX,
     63};
    5264
    5365#define    MIN_FOV                0.1f
     
    7082      : m_file_name(file_name)
    7183    {
    72         //Input setup
    73         Input::LinkActionToKey(IPT_CAM_RESET,           Key::Return);
    74         Input::LinkActionToKey(IPT_CAM_ZOOM_IN,         Key::PageUp);
    75         Input::LinkActionToKey(IPT_CAM_ZOOM_OUT,        Key::PageDown);
    76 
    77         Input::LinkActionToKey(IPT_MESH_LEFT,           Key::Left);
    78         Input::LinkActionToKey(IPT_MESH_RIGHT,          Key::Right);
    79         Input::LinkActionToKey(IPT_MESH_UP,             Key::Up);
    80         Input::LinkActionToKey(IPT_MESH_DOWN,           Key::Down);
    81 
    82         Input::LinkActionToKey(IPT_MESH_UPDATE,         Key::Space);
    83         Input::LinkActionToKey(IPT_MESH_RESET,          Key::KP0);
    84         Input::LinkActionToKey(IPT_MESH_PREV,           Key::KPPlus);
    85         Input::LinkActionToKey(IPT_MESH_NEXT,           Key::KPMinus);
    86 
    87         Input::LinkActionToKey(IPT_MESH_OFFSET_DOWN,    Key::KP1);
    88         Input::LinkActionToKey(IPT_MESH_OFFSET_UP,      Key::KP3);
    89         Input::LinkActionToKey(IPT_MESH_SCALE_DOWN,     Key::KP7);
    90         Input::LinkActionToKey(IPT_MESH_SCALE_UP,       Key::KP9);
    91 
    92         Input::LinkActionToKey(IPT_MESH_ROT_LEFT,       Key::KP4);
    93         Input::LinkActionToKey(IPT_MESH_ROT_RIGHT,      Key::KP6);
    94         Input::LinkActionToKey(IPT_MESH_ROT_UP,         Key::KP8);
    95         Input::LinkActionToKey(IPT_MESH_ROT_DOWN,       Key::KP5);
    96 
     84        /* Register an input controller for the keyboard */
     85        m_controller = new Controller(KEY_MAX, 0);
     86
     87        m_controller->GetKey(KEY_CAM_RESET).Bind("Keyboard", "Return");
     88        m_controller->GetKey(KEY_CAM_ZOOM_IN).Bind("Keyboard", "PageUp");
     89        m_controller->GetKey(KEY_CAM_ZOOM_OUT).Bind("Keyboard", "PageDown");
     90
     91        m_controller->GetKey(KEY_MESH_LEFT).Bind("Keyboard", "Left");
     92        m_controller->GetKey(KEY_MESH_RIGHT).Bind("Keyboard", "Right");
     93        m_controller->GetKey(KEY_MESH_UP).Bind("Keyboard", "Up");
     94        m_controller->GetKey(KEY_MESH_DOWN).Bind("Keyboard", "Down");
     95
     96        m_controller->GetKey(KEY_MESH_UPDATE).Bind("Keyboard", "Space");
     97        m_controller->GetKey(KEY_MESH_RESET).Bind("Keyboard", "KP0");
     98        m_controller->GetKey(KEY_MESH_PREV).Bind("Keyboard", "KPPlus");
     99        m_controller->GetKey(KEY_MESH_NEXT).Bind("Keyboard", "KPMinus");
     100
     101        m_controller->GetKey(KEY_MESH_OFFSET_DOWN).Bind("Keyboard", "KP1");
     102        m_controller->GetKey(KEY_MESH_OFFSET_UP).Bind("Keyboard", "KP3");
     103        m_controller->GetKey(KEY_MESH_SCALE_DOWN).Bind("Keyboard", "KP7");
     104        m_controller->GetKey(KEY_MESH_SCALE_UP).Bind("Keyboard", "KP9");
     105
     106        m_controller->GetKey(KEY_MESH_ROT_LEFT).Bind("Keyboard", "KP4");
     107        m_controller->GetKey(KEY_MESH_ROT_RIGHT).Bind("Keyboard", "KP6");
     108        m_controller->GetKey(KEY_MESH_ROT_UP).Bind("Keyboard", "KP8");
     109        m_controller->GetKey(KEY_MESH_ROT_DOWN).Bind("Keyboard", "KP5");
     110
     111        m_controller->GetKey(KEY_F1).Bind("Keyboard", "F1");
     112        m_controller->GetKey(KEY_F2).Bind("Keyboard", "F2");
     113        m_controller->GetKey(KEY_F3).Bind("Keyboard", "F3");
     114        m_controller->GetKey(KEY_F4).Bind("Keyboard", "F4");
     115        m_controller->GetKey(KEY_F5).Bind("Keyboard", "F5");
     116        m_controller->GetKey(KEY_ESC).Bind("Keyboard", "Escape");
     117
     118        // State
    97119        m_mesh_shown = 0;
    98120        m_angle = 0;
     
    164186        {
    165187            //Shutdown logic
    166             if (Input::WasReleased(Key::Escape))
     188            if (m_controller->GetKey(KEY_ESC).IsReleased())
    167189                Ticker::Shutdown();
    168190        }
     
    227249        //Camera movement handling
    228250        //--
    229         if (Input::WasReleased(IPT_CAM_RESET))
     251        if (m_controller->GetKey(KEY_CAM_RESET).IsReleased())
    230252            SetFov();
    231253
     
    264286                              max(lol::abs(screen_min_max[1].x), lol::abs(screen_min_max[1].y)));
    265287
    266         float fov_zoom = (float)(Input::GetStatus(IPT_CAM_ZOOM_OUT) - Input::GetStatus(IPT_CAM_ZOOM_IN));
     288        float fov_zoom = 0.f;
     289        fov_zoom += m_controller->GetKey(KEY_CAM_ZOOM_OUT).IsDown() ? 1.f : 0.f;
     290        fov_zoom -= m_controller->GetKey(KEY_CAM_ZOOM_IN).IsDown() ? 1.f : 0.f;
    267291        m_fov_zoom_damp = damp(m_fov_zoom_damp, fov_zoom, (fov_zoom == .0f)?(.15f):(0.5f), seconds);
    268292        m_fov = max(.0f, m_fov + seconds * 10.0f * m_fov_zoom_damp);
     
    292316        //Mesh movement handling
    293317        //--
    294         if (Input::WasReleased(IPT_MESH_RESET))
     318        if (m_controller->GetKey(KEY_MESH_RESET).IsReleased())
    295319            SetDefaultMeshTransform();
    296320
    297         m_mesh_shown += ((int)Input::WasReleased(IPT_MESH_NEXT)) - ((int)Input::WasReleased(IPT_MESH_PREV));
     321        m_mesh_shown += m_controller->GetKey(KEY_MESH_NEXT).IsReleased() ? 1 : 0;
     322        m_mesh_shown -= m_controller->GetKey(KEY_MESH_PREV).IsReleased() ? 1 : 0;
    298323        m_mesh_shown = clamp(m_mesh_shown, 0, max(m_meshes.Count(), 1) - 1);
    299324
    300325        vec2 new_move = vec2(.0f);
    301 
    302         new_move = vec2((float)(Input::GetStatus(IPT_MESH_RIGHT) - Input::GetStatus(IPT_MESH_LEFT)),
    303                         (float)(Input::GetStatus(IPT_MESH_UP)    - Input::GetStatus(IPT_MESH_DOWN)));
     326        new_move.x += m_controller->GetKey(KEY_MESH_RIGHT).IsDown() ? 1.f : 0.f;
     327        new_move.x -= m_controller->GetKey(KEY_MESH_LEFT).IsDown() ? 1.f : 0.f;
     328        new_move.y += m_controller->GetKey(KEY_MESH_UP).IsDown() ? 1.f : 0.f;
     329        new_move.y -= m_controller->GetKey(KEY_MESH_DOWN).IsDown() ? 1.f : 0.f;
     330
    304331        m_mesh_screen_move_damp = vec2(damp(m_mesh_screen_move_damp.x, new_move.x, (new_move.x == .0f)?(.15f):(0.5f), seconds),
    305332                                         damp(m_mesh_screen_move_damp.y, new_move.y, (new_move.y == .0f)?(.15f):(0.5f), seconds));
    306333
    307         new_move = vec2((float)(Input::GetStatus(IPT_MESH_OFFSET_UP) - Input::GetStatus(IPT_MESH_OFFSET_DOWN)),
    308                         (float)(Input::GetStatus(IPT_MESH_SCALE_UP)  - Input::GetStatus(IPT_MESH_SCALE_DOWN)));
     334        new_move.x = m_controller->GetKey(KEY_MESH_OFFSET_UP).IsDown() ? 1.f : 0.f;
     335        new_move.x -= m_controller->GetKey(KEY_MESH_OFFSET_DOWN).IsDown() ? 1.f : 0.f;
     336        new_move.y = m_controller->GetKey(KEY_MESH_SCALE_UP).IsDown() ? 1.f : 0.f;
     337        new_move.y -= m_controller->GetKey(KEY_MESH_SCALE_DOWN).IsDown() ? 1.f : 0.f;
    309338        m_mesh_move_damp = vec2(damp(m_mesh_move_damp.x, new_move.x, (new_move.x == .0f)?(.15f):(0.5f), seconds),
    310339                                  damp(m_mesh_move_damp.y, new_move.y, (new_move.y == .0f)?(.15f):(0.5f), seconds));
    311340
    312         new_move = vec2((float)(Input::GetStatus(IPT_MESH_ROT_UP)    - Input::GetStatus(IPT_MESH_ROT_DOWN)),
    313                         (float)(Input::GetStatus(IPT_MESH_ROT_RIGHT) - Input::GetStatus(IPT_MESH_ROT_LEFT)));
     341        new_move.x = m_controller->GetKey(KEY_MESH_ROT_UP).IsDown() ? 1.f : 0.f;
     342        new_move.x -= m_controller->GetKey(KEY_MESH_ROT_DOWN).IsDown() ? 1.f : 0.f;
     343        new_move.y = m_controller->GetKey(KEY_MESH_ROT_RIGHT).IsDown() ? 1.f : 0.f;
     344        new_move.y -= m_controller->GetKey(KEY_MESH_ROT_LEFT).IsDown() ? 1.f : 0.f;
    314345        m_mesh_rotate_damp = vec2(damp(m_mesh_rotate_damp.x, new_move.x, (new_move.x == .0f)?(.15f):(0.5f), seconds),
    315346                                    damp(m_mesh_rotate_damp.y, new_move.y, (new_move.y == .0f)?(.15f):(0.5f), seconds));
     
    341372        //File management
    342373        //--
    343         if (Input::WasReleased(IPT_MESH_UPDATE))
     374        if (m_controller->GetKey(KEY_MESH_UPDATE).IsReleased())
    344375            m_stream_update_time = m_stream_update_timer + 1.0f;
    345376        m_stream_update_time += seconds;
     
    393424        //TODO : This should probably be "standard LoL behaviour"
    394425        {
    395             if (Input::WasReleased(Key::F1))
     426            if (m_controller->GetKey(KEY_F1).IsReleased())
    396427                Video::SetDebugRenderMode(DebugRenderMode::Default);
    397             if (Input::WasReleased(Key::F2))
     428            if (m_controller->GetKey(KEY_F2).IsReleased())
    398429                Video::SetDebugRenderMode(DebugRenderMode::Wireframe);
    399             if (Input::WasReleased(Key::F3))
     430            if (m_controller->GetKey(KEY_F3).IsReleased())
    400431                Video::SetDebugRenderMode(DebugRenderMode::Lighting);
    401             if (Input::WasReleased(Key::F4))
     432            if (m_controller->GetKey(KEY_F4).IsReleased())
    402433                Video::SetDebugRenderMode(DebugRenderMode::Normal);
    403             if (Input::WasReleased(Key::F5))
     434            if (m_controller->GetKey(KEY_F5).IsReleased())
    404435                Video::SetDebugRenderMode(DebugRenderMode::UV);
    405436        }
     
    480511
    481512private:
    482     Camera * m_camera;
    483     float    m_angle;
    484     mat4     m_mat;
     513    Controller *m_controller;
     514    Camera *m_camera;
     515    float m_angle;
     516    mat4 m_mat;
    485517
    486518    //Mesh infos
Note: See TracChangeset for help on using the changeset viewer.