Beispiel #1
0
        public ArrowBullet(Transform Trans, ArrowBulletDescriptor Desc)
            : base(Trans, BulletType.Arrow, Desc.BaseBulletDesc)
        {
            StartPos_ = Desc.BaseBulletDesc.Position;
            EndPos_   = Desc.TargetPos;

            var MaxY       = Mathf.Max(StartPos_.y, EndPos_.y);
            var DisX       = Mathf.Abs(StartPos_.x - EndPos_.x);
            var ControlPos = new Vector2((StartPos_.x + EndPos_.x) / 2, MaxY + DisX / 2);

            BezierCurve_ = BezierCurveFactory.CreateBezierCurve(StartPos_, ControlPos, EndPos_);
            BezierTime_  = DisX / Mathf.Max(Desc.Speed, 1);
            CurrentTime_ = 0;

            StayTime_  = 1.0f;
            IsStaying_ = false;

            GetComponent <SpriteRenderer>().color = Desc.ArrowColor;

            var NextPos = BezierCurve_.Lerp(0.01f);

            SetRotationWithNextPos(NextPos);

            //AudioManager.PlaySound("audio/tf_arrow_bul.mp3");
        }
Beispiel #2
0
 public MotionContainer BezierMove(float Time, Vector3 Begin, Vector3 Control, Vector3 End, bool IsRelative)
 {
     MotionList_.Add(new BezierMoveMotion(Time, BezierCurveFactory.CreateBezierCurve(Begin, Control, End), IsRelative));
     return(this);
 }