Changeset 1379


Ignore:
Timestamp:
May 12, 2012, 10:14:06 PM (9 years ago)
Author:
touky
Message:

Added Barycenter logic in camera && Snake position.

Location:
trunk/orbital
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/orbital/orbital.cpp

    r1378 r1379  
    176176    for (int n = 0; n < 3; n++)
    177177    {
    178         if (m_angle[n] > 180.f)
    179             m_angle[n] -= 360.f;
    180         else if (m_angle[n] < -180.f)
    181             m_angle[n] += 360.f;
     178                if (m_angle[n] > 180.f)
     179                        m_angle[n] -= 360.f;
     180                else if (m_angle[n] < -180.f)
     181                        m_angle[n] += 360.f;
    182182    }
    183183
     
    188188
    189189        vec3 new_camera_pos = vec3(0,0,0);
     190
     191        for (int i = 0; i < m_tanks.Count(); i++)
     192                new_camera_pos += m_tanks[i]->m_position;
     193        for (int i = 0; i < m_snakes.Count(); i++)
     194                new_camera_pos += m_snakes[i]->GetBarycenter();
    190195        for (int i = 0; i < m_players.Count(); i++)
    191196                new_camera_pos += m_players[i]->m_position;
    192         new_camera_pos /= (float)m_players.Count();
     197
     198        new_camera_pos /= (float)(m_players.Count() + m_tanks.Count() + m_snakes.Count());
    193199        new_camera_pos += vec3(0.f, 0.f, -50.f);
    194200
  • trunk/orbital/snake.h

    r1372 r1379  
    4848
    4949    char const *GetName() { return "<snake>"; }
     50
     51        vec3 GetBarycenter()
     52        {
     53                vec3 new_camera_pos = m_position;
     54                for (int i = 0; i < m_nodes.Count(); i++)
     55                        new_camera_pos += m_nodes[i].m1;
     56                new_camera_pos /= (float)(m_nodes.Count() + 1);
     57
     58                return new_camera_pos;
     59        }
    5060
    5161protected:
Note: See TracChangeset for help on using the changeset viewer.