示例#1
0
        public void Execute(float dt)
        {
            //m_Plant.GameUpdate(dt);
            if (m_PlantRotateSpeed != 0)
            {
                Debug.LogWarning("Execute m_PlantRotateSpeed");
            }

            float rot = dt * m_PlantRotateSpeed;

            m_Plant.UpdateGameRotate(rot);

            if (m_PlantRotateSpeed > 0)
            {
                m_PlantRotateSpeed -= m_ResisAcceleration * dt;
                if (m_PlantRotateSpeed <= 0)
                {
                    m_PlantRotateSpeed = 0;

                    //to planet ready
                    m_Plant.ChangeState(new PlanetReady(m_Plant));
                }
            }
            else if (m_PlantRotateSpeed < 0)
            {
                m_PlantRotateSpeed += m_ResisAcceleration * dt;
                if (m_PlantRotateSpeed >= 0)
                {
                    m_PlantRotateSpeed = 0;

                    //to planet ready
                    m_Plant.ChangeState(new PlanetReady(m_Plant));
                }
            }
        }
示例#2
0
 public void Execute(float dt)
 {
     if (m_bChangeToRunning)
     {
         m_bChangeToRunning = false;
         m_Planet.ChangeState(new PlanetControlRot(m_Planet));
     }
 }
示例#3
0
        public void Execute(float dt)
        {
            //throw new NotImplementedException();
            if (m_bChangeToRunning)
            {
                m_bChangeToRunning = false;

                PlantRunning running = new PlantRunning(this.m_Planet);
                running.m_PlantRotateSpeed = m_LastedRot;
                m_Planet.ChangeState(running);
            }
        }