Ignore:
Timestamp:
May 3, 2012, 1:54:17 PM (9 years ago)
Author:
sam
Message:

orbital: play with the tanks.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/orbital/tank.h

    r1335 r1336  
    1414public:
    1515    Tank()
    16       : m_angle(0.f),
     16      : m_turret_angle(0.f),
    1717        m_ready(false)
    1818    {
    19         m_body.SendCommand("sc0.1,0.1,0,1,ab6,6,15,ty-2,sc1,1,1,1,afcb4,5,16,0.4,tx4,mx,fl,sc0.2,0.7,0,1,afcb8,7,10,0.4,tz-4,fl");
    20         m_head.SendCommand("sc0.2,0.7,0,1,afcb3,6,10,0.4,tx-8,afcb3,6,10,0.4,tx4,ty10,fl,sc1,1,1,1,afcb3,6,10,0.4,rx-30,ty10,fl");
     19        m_body.SendCommand("sc0.1,0.1,0,1,ab6,6,15,ty-2,sc1,1,1,1,afcb4,5,16,0.4,tx4,ty5,mx,fl,sc0.2,0.7,0,1,afcb8,7,10,0.4,tz-4,ty5,fl");
     20        m_turret.SendCommand("sc0.2,0.7,0,1,afcb3,6,10,0.4,tx-8,afcb3,6,10,0.4,tx4,ty13,fl,sc1,1,1,1,afcb3,6,10,0.4,rx-30,ty13,fl");
    2121    }
    2222
     
    2727    char const *GetName() { return "<tank>"; }
    2828
     29    /* Set a target for the tank */
     30    void SetTarget(vec3 const &position)
     31    {
     32        m_target = position;
     33    }
     34
    2935protected:
    3036    virtual void TickGame(float seconds)
     
    3238        WorldEntity::TickGame(seconds);
    3339
    34         m_rotation *= quat::rotate(seconds * 20.f, vec3(0, 1, 0));
    35         m_angle += seconds * 50.f;
     40float test = RandF(0.f, +40.f);
     41        m_rotation *= quat::rotate(seconds * test, vec3(0, 1, 0));
     42        m_velocity = m_rotation.transform(vec3(0, 0, 1));
     43        m_position += seconds * 40.f * m_velocity;
     44
     45        m_turret_angle += seconds * 50.f;
    3646    }
    3747
     
    4353        {
    4454            m_body.SendCommand("irb");
    45             m_head.SendCommand("irb");
     55            m_turret.SendCommand("irb");
    4656            m_ready = true;
    4757        }
     
    5060        m_body.Render(model);
    5161
    52         model = model * mat4::rotate(m_angle, vec3(0, 1, 0));
    53         m_head.Render(model);
     62        model = model * mat4::rotate(m_turret_angle, vec3(0, 1, 0));
     63        m_turret.Render(model);
    5464    }
    5565
    5666private:
    57     Mesh m_body, m_head;
    58     float m_angle;
     67    Mesh m_body, m_turret;
     68    vec3 m_target;
     69    float m_turret_angle;
    5970    bool m_ready;
    6071};
Note: See TracChangeset for help on using the changeset viewer.