Пример #1
0
        public void update(float dt, double update_time, ref MyTransform parent_transform)
        {
            if (MyCollider.getHitOpponentForEnemy(collider_) != MyCollider.Type.None)
            {
                rigidbody_.addTorque(MyRandom.Range(-20f, 20f),
                                     MyRandom.Range(-20f, 20f),
                                     MyRandom.Range(-20f, 20f));
            }
            if (lock_target_.isHitted())
            {
                rigidbody_.addTorque(MyRandom.Range(-200f, 200f),
                                     MyRandom.Range(-200f, 200f),
                                     MyRandom.Range(-200f, 200f));
                lock_target_.clearLock();
                Explosion.Instance.spawn(ref lock_target_.updated_position_, update_time);
                Hahen.Instance.spawn(ref lock_target_.updated_position_, update_time);
                Shockwave.Instance.spawn(ref lock_target_.updated_position_, update_time);
                SystemManager.Instance.registSound(DrawBuffer.SE.Explosion);
            }
            rigidbody_.addSpringTorque(ref parent_transform.rotation_, 30f /* torque_level */);
            var pos = parent_transform.transformPosition(ref locator_);

            rigidbody_.transform_.position_ = pos;
            rigidbody_.update(dt);
            MyCollider.updateEnemy(collider_, ref rigidbody_.transform_.position_);
            lock_target_.update();
        }
Пример #2
0
        public void reset(ref MyTransform parent_transform)
        {
            var pos = parent_transform.transformPosition(ref locator_);

            rigidbody_.transform_.position_ = pos;
            rigidbody_.transform_.rotation_ = parent_transform.rotation_;
            rigidbody_.velocity_            = CV.Vector3Zero;
            rigidbody_.r_velocity_          = CV.Vector3Zero;
        }
Пример #3
0
 public void renderUpdate(int front, ref MyTransform transform, ref Vector3 offset)
 {
     {
         var pos = transform.transformPosition(ref offset);
         Beam.Instance.renderUpdate(front,
                                    beam_id_,
                                    ref pos,
                                    ref pos);
     }
     for (var i = 0; i < beam_id_list_.Length; ++i)
     {
         var dir0 = offset + normal_list_[i] * phase_list_[i] * 2f;
         var pos0 = transform.transformPosition(ref dir0);
         var dir1 = offset + normal_list_[i] * (phase_list_[i] + 0.1f) * 2f;
         var pos1 = transform.transformPosition(ref dir1);
         Beam.Instance.renderUpdate(front,
                                    beam_id_list_[i],
                                    ref pos0,
                                    ref pos1);
     }
 }