Beispiel #1
0
    /// <summary>
    /// déclanche l'animation d'attaque.
    /// </summary>
    public virtual void Attack()
    {
        if (_isAttacking || _lastAttackTime + _cooldown > Time.time)
        {
            return;
        }

        Debug.Log("LastAttack : " + _lastAttackTime);

        foreach (var colli in _colliders)
        {
            colli.enabled = true;
        }
        TransformVector init = new TransformVector(transform.position, transform.rotation);
        TransformVector dest = new TransformVector(_normalTarget.position, _normalTarget.rotation);

        _transformCurve = new TransformCurve(init, Time.time, dest.Sub(init).Mult(-1).Sub(_transformCurve.GetSpeed(Time.time)), dest, Time.time + _timeAttack, dest.Sub(init).Mult(10), false);
        _isAttacking    = true;
        TempCible       = Instantiate(_normalTarget.gameObject);
        TempCible.transform.position = _normalTarget.position;
        TempCible.transform.rotation = _normalTarget.rotation;
        TempCible.GetComponentInChildren <SpriteRenderer>().color = CibleColor;
        TempCible.transform.SetParent(null, true);
        Destroy(TempCible, _timeAttack);
    }
Beispiel #2
0
        public TransformVector GetSpeed(float time)
        {
            TransformVector precVect = GetTransform(Time.deltaTime);
            TransformVector vect     = GetTransform(time);

            return(vect.Sub(precVect));
        }
Beispiel #3
0
        public TransformVector GetTransform(float time)
        {
            TransformVector trans = new TransformVector(
                new Vector3(_posX.Evaluate(time), _posY.Evaluate(time), _posZ.Evaluate(time)),
                new Quaternion(_rotX.Evaluate(time), _rotY.Evaluate(time), _rotZ.Evaluate(time), _rotW.Evaluate(time)));

            return(trans);
        }
Beispiel #4
0
 // Use this for initialization
 protected virtual void Start()
 {
     _AudioSource = GetComponent<AudioSource>();
     _colliders = GetComponentsInChildren<Collider>();
     _zeroTransformVector = new TransformVector();
     _initialTransformVector = new TransformVector(transform.localPosition,transform.localRotation);
     _transformCurve = new TransformCurve(_initialTransformVector, Time.time, _zeroTransformVector, _initialTransformVector, Time.time, _zeroTransformVector);
     BugManager = FindObjectOfType<BugManager>();
 }
Beispiel #5
0
 // Use this for initialization
 protected virtual void Start()
 {
     _AudioSource            = GetComponent <AudioSource>();
     _colliders              = GetComponentsInChildren <Collider>();
     _zeroTransformVector    = new TransformVector();
     _initialTransformVector = new TransformVector(transform.localPosition, transform.localRotation);
     _transformCurve         = new TransformCurve(_initialTransformVector, Time.time, _zeroTransformVector, _initialTransformVector, Time.time, _zeroTransformVector);
     BugManager              = FindObjectOfType <BugManager>();
 }
Beispiel #6
0
        public TransformCurve(TransformVector initialTransform, float initialTime, TransformVector outTangent, TransformVector destinationTransform, float destinationTime, TransformVector inTangent, bool isLocal = true)
        {
            _isLocal = isLocal;
            Keyframe initPosXKey = new Keyframe(initialTime, initialTransform.Position.x, 0, outTangent.Position.x);
            Keyframe initPosYKey = new Keyframe(initialTime, initialTransform.Position.y, 0, outTangent.Position.y);
            Keyframe initPosZKey = new Keyframe(initialTime, initialTransform.Position.z, 0, outTangent.Position.z);

            Keyframe destPosXKey = new Keyframe(destinationTime, destinationTransform.Position.x, inTangent.Position.x, 0);
            Keyframe destPosYKey = new Keyframe(destinationTime, destinationTransform.Position.y, inTangent.Position.y, 0);
            Keyframe destPosZKey = new Keyframe(destinationTime, destinationTransform.Position.z, inTangent.Position.z, 0);

            _posX = new AnimationCurve();
            _posY = new AnimationCurve();
            _posZ = new AnimationCurve();

            _posX.AddKey(initPosXKey);
            _posX.AddKey(destPosXKey);
            _posY.AddKey(initPosYKey);
            _posY.AddKey(destPosYKey);
            _posZ.AddKey(initPosZKey);
            _posZ.AddKey(destPosZKey);

            Keyframe initRotXKey = new Keyframe(initialTime, initialTransform.Rotation.x, 0, outTangent.Rotation.x);
            Keyframe initRotYKey = new Keyframe(initialTime, initialTransform.Rotation.y, 0, outTangent.Rotation.y);
            Keyframe initRotZKey = new Keyframe(initialTime, initialTransform.Rotation.z, 0, outTangent.Rotation.z);
            Keyframe initRotWKey = new Keyframe(initialTime, initialTransform.Rotation.w, 0, outTangent.Rotation.w);

            Keyframe destRotXKey = new Keyframe(destinationTime, destinationTransform.Rotation.x, inTangent.Rotation.x, 0);
            Keyframe destRotYKey = new Keyframe(destinationTime, destinationTransform.Rotation.y, inTangent.Rotation.y, 0);
            Keyframe destRotZKey = new Keyframe(destinationTime, destinationTransform.Rotation.z, inTangent.Rotation.z, 0);
            Keyframe destRotWKey = new Keyframe(destinationTime, destinationTransform.Rotation.w, inTangent.Rotation.w, 0);

            _rotX = new AnimationCurve();
            _rotY = new AnimationCurve();
            _rotZ = new AnimationCurve();
            _rotW = new AnimationCurve();

            _rotX.AddKey(initRotXKey);
            _rotX.AddKey(destRotXKey);
            _rotY.AddKey(initRotYKey);
            _rotY.AddKey(destRotYKey);
            _rotZ.AddKey(initRotZKey);
            _rotZ.AddKey(destRotZKey);
            _rotW.AddKey(initRotWKey);
            _rotW.AddKey(destRotWKey);
        }
Beispiel #7
0
    /// <summary>
    /// déclanche l'animation d'attaque.
    /// </summary>
    public virtual void Attack()
    {
        if (_isAttacking || _lastAttackTime + _cooldown >Time.time)
            return;

        Debug.Log("LastAttack : " + _lastAttackTime);

        foreach (var colli in _colliders)
        {
            colli.enabled = true;
        }
        TransformVector init = new TransformVector(transform.position,transform.rotation);
        TransformVector dest = new TransformVector(_normalTarget.position, _normalTarget.rotation);
        _transformCurve = new TransformCurve(init, Time.time, dest.Sub(init).Mult(-1).Sub(_transformCurve.GetSpeed(Time.time)), dest, Time.time + _timeAttack, dest.Sub(init).Mult(10),false);
        _isAttacking = true;
        TempCible = Instantiate(_normalTarget.gameObject);
        TempCible.transform.position = _normalTarget.position;
        TempCible.transform.rotation = _normalTarget.rotation;
        TempCible.GetComponentInChildren<SpriteRenderer>().color = CibleColor;
        TempCible.transform.SetParent(null,true);
        Destroy(TempCible,_timeAttack);
    }
        private Drawable transformVectorTo(Vector2 startValue, Vector2 newValue, double duration, EasingTypes easing, TransformVector transform)
        {
            Type type = transform.GetType();

            if (transformationDelay == 0)
            {
                Transforms.RemoveAll(t => t.GetType() == type);

                if (startValue == newValue)
                {
                    return(this);
                }
            }
            else
            {
                startValue = (Transforms.FindLast(t => t.GetType() == type) as TransformVector)?.EndValue ?? startValue;
            }

            double startTime = Time + transformationDelay;

            transform.StartTime  = startTime;
            transform.EndTime    = startTime + duration;
            transform.StartValue = startValue;
            transform.EndValue   = newValue;
            transform.Easing     = easing;

            if (duration == 0)
            {
                transform.Apply(this);
            }
            else
            {
                Transforms.Add(transform);
            }

            return(this);
        }
        protected void TransformVectorTo(Vector2 startValue, Vector2 newValue, double duration, EasingTypes easing, TransformVector transform)
        {
            Type type = transform.GetType();

            if (transformationDelay == 0)
            {
                Transforms.RemoveAll(t => t.GetType() == type);

                if (startValue == newValue)
                {
                    return;
                }
            }
            else
            {
                startValue = (Transforms.FindLast(t => t.GetType() == type) as TransformVector)?.EndValue ?? startValue;
            }

            double startTime = Clock != null ? (Time.Current + transformationDelay) : 0;

            transform.StartTime  = startTime;
            transform.EndTime    = startTime + duration;
            transform.StartValue = startValue;
            transform.EndValue   = newValue;
            transform.Easing     = easing;

            if (Clock == null)
            {
                transform.UpdateTime(new FrameTimeInfo {
                    Current = transform.EndTime
                });
                transform.Apply(this);
            }
            else if (duration == 0 && transformationDelay == 0)
            {
                transform.UpdateTime(Time);
                transform.Apply(this);
            }
            else
            {
                Transforms.Add(transform);
            }
        }
Beispiel #10
0
 public TransformVector Sub(TransformVector transformVector)
 {
     return new TransformVector(Position - transformVector.Position, Rotation * Quaternion.Inverse(transformVector.Rotation));
 }
Beispiel #11
0
 public TransformVector Add(TransformVector transformVector)
 {
     return new TransformVector(Position + transformVector.Position, Rotation * transformVector.Rotation);
 }
Beispiel #12
0
 public TransformVector GetTransform(float time)
 {
     TransformVector trans = new TransformVector(
         new Vector3(_posX.Evaluate(time), _posY.Evaluate(time), _posZ.Evaluate(time)),
         new Quaternion(_rotX.Evaluate(time), _rotY.Evaluate(time), _rotZ.Evaluate(time), _rotW.Evaluate(time)));
     return trans;
 }
Beispiel #13
0
        public TransformCurve(TransformVector initialTransform, float initialTime, TransformVector outTangent, TransformVector destinationTransform, float destinationTime, TransformVector inTangent,bool isLocal = true)
        {
            _isLocal = isLocal;
            Keyframe initPosXKey = new Keyframe(initialTime, initialTransform.Position.x, 0, outTangent.Position.x);
            Keyframe initPosYKey = new Keyframe(initialTime, initialTransform.Position.y, 0, outTangent.Position.y);
            Keyframe initPosZKey = new Keyframe(initialTime, initialTransform.Position.z, 0, outTangent.Position.z);

            Keyframe destPosXKey = new Keyframe(destinationTime, destinationTransform.Position.x, inTangent.Position.x, 0);
            Keyframe destPosYKey = new Keyframe(destinationTime, destinationTransform.Position.y, inTangent.Position.y, 0);
            Keyframe destPosZKey = new Keyframe(destinationTime, destinationTransform.Position.z, inTangent.Position.z, 0);

            _posX = new AnimationCurve();
            _posY = new AnimationCurve();
            _posZ = new AnimationCurve();

            _posX.AddKey(initPosXKey);
            _posX.AddKey(destPosXKey);
            _posY.AddKey(initPosYKey);
            _posY.AddKey(destPosYKey);
            _posZ.AddKey(initPosZKey);
            _posZ.AddKey(destPosZKey);

            Keyframe initRotXKey = new Keyframe(initialTime, initialTransform.Rotation.x, 0, outTangent.Rotation.x);
            Keyframe initRotYKey = new Keyframe(initialTime, initialTransform.Rotation.y, 0, outTangent.Rotation.y);
            Keyframe initRotZKey = new Keyframe(initialTime, initialTransform.Rotation.z, 0, outTangent.Rotation.z);
            Keyframe initRotWKey = new Keyframe(initialTime, initialTransform.Rotation.w, 0, outTangent.Rotation.w);

            Keyframe destRotXKey = new Keyframe(destinationTime, destinationTransform.Rotation.x, inTangent.Rotation.x, 0);
            Keyframe destRotYKey = new Keyframe(destinationTime, destinationTransform.Rotation.y, inTangent.Rotation.y, 0);
            Keyframe destRotZKey = new Keyframe(destinationTime, destinationTransform.Rotation.z, inTangent.Rotation.z, 0);
            Keyframe destRotWKey = new Keyframe(destinationTime, destinationTransform.Rotation.w, inTangent.Rotation.w, 0);

            _rotX = new AnimationCurve();
            _rotY = new AnimationCurve();
            _rotZ = new AnimationCurve();
            _rotW = new AnimationCurve();

            _rotX.AddKey(initRotXKey);
            _rotX.AddKey(destRotXKey);
            _rotY.AddKey(initRotYKey);
            _rotY.AddKey(destRotYKey);
            _rotZ.AddKey(initRotZKey);
            _rotZ.AddKey(destRotZKey);
            _rotW.AddKey(initRotWKey);
            _rotW.AddKey(destRotWKey);
        }
Beispiel #14
0
 public TransformVector Sub(TransformVector transformVector)
 {
     return(new TransformVector(Position - transformVector.Position, Rotation * Quaternion.Inverse(transformVector.Rotation)));
 }
Beispiel #15
0
 public TransformVector Add(TransformVector transformVector)
 {
     return(new TransformVector(Position + transformVector.Position, Rotation * transformVector.Rotation));
 }