Exemple #1
0
        //CameraNode.MoveTo(vector3, Easing.In);
        public static void MoveTo(this Node node, Vector3 Endpos, Easeing easeing, float duration, float easetime = 2f)
        {
            ValueAnimation posanim = new ValueAnimation(DefaultScene.scene.Context);

            posanim.InterpolationMethod = InterpMethod.ImLinear;

            posanim.SetKeyFrame(0f, node.Position);
            //Debug.WriteLine($"Node: {node.ID} => Before Move {node.WorldPosition}");
            var   incr     = 1 / (easetime * 100);
            float consumed = 0;

            for (float i = 0; i < 1; i += incr)
            {
                float time = 0;
                switch (easeing)
                {
                case Easeing.In:
                    time = EaseMath.ElasticIn(i);
                    break;

                default:
                    break;
                }

                posanim.SetKeyFrame(i * easetime, getposition(node.Position, Endpos, time));
                consumed += easetime * i;
            }

            posanim.SetKeyFrame(duration - consumed, Endpos);
            node.RemoveAttributeAnimation("Position");
            node.SetAttributeAnimation("Position", posanim, WrapMode.WmOnce);
            //	node.SetWorldPosition(Endpos);
            //Debug.WriteLine($"Node: {node.ID} => After Move {node.WorldPosition}");
        }
Exemple #2
0
 public override void Update(float time)
 {
     InnerActionState.Update(EaseMath.BounceIn(time));
 }
Exemple #3
0
 public override void Update(float time)
 {
     InnerActionState.Update(EaseMath.BackOut(time));
 }
Exemple #4
0
 public override void Update(float time)
 {
     InnerActionState.Update(EaseMath.ExponentialOut(time));
 }
Exemple #5
0
 public override void Update(float time)
 {
     InnerActionState.Update(EaseMath.ElasticInOut(time, Period));
 }