コード例 #1
0
        ///<summary>
        /// This method kicks off the process.
        ///</summary>
        public void StartTween(TweenDelegate tweenDelegate, int srcX, int srcY, int destX, int destY, TweenAnimation animType, int timeInterval)
        {
            if (tweenDelegate == null)
            {
                return;
            }

            if (fBusy)
            {
                StopTween();
            }
            fBusy = true;

            fTweenDelegate = tweenDelegate;
            fCounter       = 0;
            fTimeStart     = fCounter;
            fTimeDest      = timeInterval;
            fAnimation     = animType;
            fStartX        = srcX;
            fStartY        = srcY;
            fCurX          = srcX;
            fCurY          = srcY;
            fDestX         = destX;
            fDestY         = destY;

            fTimer.Start();
        }
コード例 #2
0
    public void AddAnimationToQueue(Tween animation, bool disableGameObjectAfter = false)
    {
        TweenAnimation tweenAnimation = new TweenAnimation(animation.Pause(), disableGameObjectAfter);

        animationQueue.Enqueue(tweenAnimation);
        // Debug.Log("add" + this.GetInstanceID().ToString());
    }
コード例 #3
0
        public void CompleteTestBackward()
        {
            bool completed = false;
            TweenAnimation <float> tween = new TweenAnimation <float>()
            {
                From     = -0.239572048f,
                To       = 1.2223f,
                Duration = TimeSpan.FromSeconds(2.34123f),
            };

            tween.Completed += (o, e) =>
            {
                completed = true;
            };
            tween.StartupDirection = AnimationDirection.Backward;
            ((IAnimation)tween).OnStarted();
            tween.Update(0.34234f);
            tween.Update(1.284957f);
            tween.Update(0.0001479f);
            tween.Update(2.38562939f);

            Assert.IsTrue(completed);
            Assert.AreEqual <TimeSpan>(TimeSpan.Zero, tween.Position);
            Assert.AreEqual <TimeSpan>(tween.Duration, tween.ElapsedTime);
            Assert.AreEqual <float>(tween.From.Value, tween.Value);
        }
コード例 #4
0
 public void Play(TweenAnimation animation)
 {
     foreach (GeneratedAnimation anim in generatedAnimations)
     {
         if (anim.Name == animation.name)
         {
             anim.Play();
             return;
         }
     }
     Debug.LogWarning("Cant find animation named '" + animation.name + "' !");
 }
コード例 #5
0
    IEnumerator PlayNextAnimation()
    {
        GameObject templateInstance = HandManager.FindTemplateInstance(actionGroup);

        // templateInstance.SetActive(true);
        playingAnimation = true;
        TweenAnimation tweenAnimation = animationQueue.Dequeue();

        tweenAnimation.tween.Play();
        yield return(tweenAnimation.tween.WaitForCompletion());

        playingAnimation = false;
        // templateInstance.SetActive(!tweenAnimation.disableGameObjectAfter);
    }
コード例 #6
0
        public void CompleteTestWithZeroDuration()
        {
            bool completed = false;
            TweenAnimation <float> tween = new TweenAnimation <float>()
            {
                From     = -1,
                To       = 1,
                Duration = TimeSpan.Zero,
            };

            tween.Completed += (o, e) =>
            {
                completed = true;
            };
            ((IAnimation)tween).OnStarted();
            tween.Update(0.34234f);

            Assert.IsTrue(completed);
            Assert.AreEqual <TimeSpan>(tween.Duration, tween.Position);
            Assert.AreEqual <TimeSpan>(tween.Duration, tween.ElapsedTime);
            Assert.AreEqual <float>(tween.From.Value, tween.Value);
        }
コード例 #7
0
ファイル: Game.cs プロジェクト: MarvynTardy/JeuPlusOuMoins
 private void Awake()
 {
     m_tweenAnimation = FindObjectOfType <TweenAnimation>();
 }
コード例 #8
0
        public void MoveTo(MoveInfo info, System.Action callback)
        {
            if (PegType != CreeperPegType.Possible)
            {
                ParticleEmitter emitter = (ParticleEmitter)Parent.Find<ParticleEffect>().Emitter;
                emitter.Duration = 1f;
                float newDirectionRadian = (float)Math.Atan2(-(info.EndPoint.X - Parent.Transform.Translation.X), -(info.EndPoint.Z - Parent.Transform.Translation.Z));

                Parent.Transform = Matrix.CreateRotationY(newDirectionRadian)
                    * Matrix.CreateTranslation(Parent.Transform.Translation);

                TweenAnimation<Matrix> moveAnimation = new TweenAnimation<Matrix>
                    {
                        Target = Parent,
                        TargetProperty = "Transform",
                        Duration = TimeSpan.FromSeconds(1),
                        From = Parent.Transform,
                        To = Matrix.CreateRotationY(newDirectionRadian) * Matrix.CreateTranslation(info.EndPoint),
                        Curve = Curves.Smooth,
                    };

                moveAnimation.Completed += new EventHandler((s, e) =>
                    {
                        _pegModel.Animations["Run"].Stop();
                        _pegModel.Animations.Play("Idle");
                        Parent.Animations.Remove(Resources.AnimationNames.PegMove);
                        _graphicalPosition = info.EndPoint;
                        Position = info.Position;
                        emitter.Duration = 0f;
                        callback();
                    });
                if (info.Type != MoveType.PegJump)
                {

                    Parent.Animations.Add("move", moveAnimation);
                    Parent.Animations.Play("move");
                    if (_pegModel != null)
                        _pegModel.Animations.Play("Run");
                }
                else
                {

                    Vector3 distance = info.EndPoint - Parent.Transform.Translation;
                    distance /= 1.4f;

                    Parent.Transform = Matrix.CreateRotationY(newDirectionRadian)
                        * Matrix.CreateTranslation(Parent.Transform.Translation);

                    TweenAnimation<Matrix> killAnimation = new TweenAnimation<Matrix>
                    {
                        Target = Parent,
                        TargetProperty = "Transform",
                        Duration = TimeSpan.FromSeconds(1),
                        From = Parent.Transform,
                        To = Matrix.CreateRotationY(newDirectionRadian) * Matrix.CreateTranslation(info.EndPoint - distance),
                        Curve = Curves.Smooth,
                    };

                    killAnimation.Completed += new EventHandler((s, e) =>
                    {

                        _pegModel.Animations["Chop"].Stop();
                        _pegModel.Animations["Attack"].Stop();
                        Parent.Animations.Remove("kill");
                        moveAnimation.From = Parent.Transform;
                        if (info.JumpedPeg != null)
                        {
                            info.JumpedPeg.Die();
                        }
                        _pegModel.Animations.Play("Run");
                        Parent.Animations.Play("move");
                        _graphicalPosition = info.EndPoint;
                        Position = info.Position;
                    });

                    Parent.Animations.Add("move", moveAnimation);
                    Parent.Animations.Add("kill", killAnimation);
                    Parent.Animations.Play("kill");

                    int nextValue = r.Next(2);
                    if (nextValue == 0)
                    {
                        _pegModel.Animations.Play("Attack");
                    }
                    else
                    {
                        _pegModel.Animations.Play("Chop");
                    }
                }
            }
        }