Changeset 1844


Ignore:
Timestamp:
Aug 31, 2012, 8:38:06 AM (8 years ago)
Author:
touky
Message:
 
Location:
trunk/test
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/BtPhysTest.cpp

    r1834 r1844  
    5656#define USE_ROTATION    0
    5757#define USE_CHARACTER   1
     58#define USE_STAIRS              1
    5859
    5960#define IPT_MOVE_FORWARD                "Move_Forward"
     
    9192        float offset = 29.5f;
    9293        vec3 pos_offset = vec3(.0f, 30.f, .0f);
     94        if (USE_STAIRS)
     95        {
     96                vec3 new_offset = vec3(1.0f, .125f, .0f);
     97                quat NewRotation = quat::fromeuler_xyz(0.f, 0.f, 0.f);
     98                vec3 NewPosition = pos_offset + vec3(5.0f, -29.f, 15.0f);
     99                {
     100                        NewRotation = quat::fromeuler_xyz(0.f, 0.f, 30.f);
     101                        NewPosition += vec3(4.0f, .0f, -4.0f);
     102
     103                        PhysicsObject* NewPhyobj = new PhysicsObject(m_simulation, NewPosition, NewRotation, 3);
     104                        Ticker::Ref(NewPhyobj);
     105                        m_stairs_list << NewPhyobj;
     106                }
     107                {
     108                        NewRotation = quat::fromeuler_xyz(0.f, 0.f, 40.f);
     109                        NewPosition += vec3(4.0f, .0f, -4.0f);
     110
     111                        PhysicsObject* NewPhyobj = new PhysicsObject(m_simulation, NewPosition, NewRotation, 3);
     112                        Ticker::Ref(NewPhyobj);
     113                        m_stairs_list << NewPhyobj;
     114                }
     115                NewPosition = pos_offset + vec3(5.0f, -29.5f, 15.0f);
     116                NewRotation = quat::fromeuler_xyz(0.f, 0.f, 0.f);
     117                for (int i=0; i < 15; i++)
     118                {
     119                        NewPosition += new_offset;
     120
     121                        PhysicsObject* NewPhyobj = new PhysicsObject(m_simulation, NewPosition, NewRotation, 3);
     122                        Ticker::Ref(NewPhyobj);
     123                        m_stairs_list << NewPhyobj;
     124                }
     125        }
     126
    93127        if (USE_WALL)
    94128        {
     
    164198        {
    165199                quat NewRotation = quat::fromeuler_xyz(0.f, 0.f, 0.f);
    166                 vec3 NewPosition = pos_offset + vec3(-15.0f, -10.0f, .0f);
     200                vec3 NewPosition = pos_offset + vec3(-5.0f, -10.0f, 15.0f);
    167201
    168202                PhysicsObject* NewPhyobj = new PhysicsObject(m_simulation, NewPosition, NewRotation, 2);
     
    408442                Ticker::Unref(CurPop);
    409443        }
     444        while (m_stairs_list.Count())
     445        {
     446                PhysicsObject* CurPop = m_stairs_list.Last();
     447                m_stairs_list.Pop();
     448                CurPop->GetPhysic()->RemoveFromSimulation(m_simulation);
     449                Ticker::Unref(CurPop);
     450        }
    410451        while (m_character_list.Count())
    411452        {
  • trunk/test/BtPhysTest.h

    r1764 r1844  
    3131        Array<PhysicsObject*>                           m_platform_list;
    3232        Array<PhysicsObject*>                           m_character_list;
     33        Array<PhysicsObject*>                           m_stairs_list;
    3334
    3435        float                                                           m_loop_value;
  • trunk/test/PhysicObject.h

    r1834 r1844  
    8282                                " ty-.1 tx.05]"
    8383                                );
    84                         vec3 BoxSize = vec3(.5f, 2.f, .5f);
     84                        vec3 BoxSize = vec3(1.f, 2.f, 1.f);
    8585                        m_character->SetCollisionChannel(0, 0xFF);
    8686                        m_character->SetShapeToCapsule(BoxSize.x, BoxSize.y);
    8787                        m_character->SetMass(.0f);
     88                        m_character->SetStepHeight(1.f);
    8889                        m_character->SetTransform(base_location, base_rotation);
    8990                        m_character->InitBodyToGhost();
    9091                        m_character->AddToSimulation(new_sim);
     92                }
     93                else if (dummy == 3) //for Stairs purpose
     94                {
     95                        m_physics = new EasyPhysic(this);
     96
     97                        m_mesh.Compile("[sc#aae afcb4 .25 4 -.01]");
     98                        vec3 BoxSize = vec3(4.f, .25f, 4.f);
     99                        m_physics->SetCollisionChannel(0, 0xFF);
     100                        m_physics->SetShapeToBox(BoxSize);
     101                        m_physics->SetMass(.0f);
     102                        m_physics->SetTransform(base_location, base_rotation);
     103                        m_physics->InitBodyToRigid(true);
     104                        m_physics->AddToSimulation(new_sim);
    91105                }
    92106        }
Note: See TracChangeset for help on using the changeset viewer.