Ejemplo n.º 1
0
 protected void InitAnimator()
 {
     FrameAnimator a = new FrameAnimator(25, 25);
     AnimationSequence seq = new AnimationSequence("rotating", 0, 8);
     seq.Mode = AnimationSequence.AnimationMode.LOOP;
     a.AddAnimation(seq);
     a.CurrentAnimationName = "rotating";
     this.Animator = a;
 }
Ejemplo n.º 2
0
    public override void Init()
    {
        base.Init();

        ctr        = GetComponent <ItemController2D>();
        col        = GetComponentInChildren <Collider2D>();
        spr        = GetComponent <SpriteRenderer>();
        collisions = new RaycastHit2D[2];

        FrameAnimator anim = GetComponent <FrameAnimator>();

        if (anim != null)
        {
            anim.AnimationOver += Remove;
        }
    }
Ejemplo n.º 3
0
        public void Play_OnFrameChanged_RandomStart()
        {
            var _startingFrames = new List <int>();

            _clip.RandomStart.Returns(true);
            for (var i = 0; i < 100; i++)
            {
                var animator = new FrameAnimator(new IClip[] { _clip });
                animator.OnFrameChanged += (index) =>
                {
                    _startingFrames.Add(index);
                };
                animator.Play(_clip);
            }
            var distinctCount = _startingFrames.Distinct().Count();

            Assert.That(distinctCount, Is.GreaterThan(1));
        }
Ejemplo n.º 4
0
        public void Draw(FrameAnimator animator, Matrix world)
        {
            Frame frame = animator.CurrentFrame;

            if (frame != null && frame.Texture != null)
            {
                if (animator.Position != Point.Zero)
                {
                    world *= Matrix.CreateTranslation(animator.Position.X, animator.Position.Y, 0);
                }

                sprite.Begin(SpriteSortMode.Deferred, this.blendState, transformMatrix: world);
                sprite.Draw(frame.Texture,
                            position: Vector2.Zero,
                            sourceRectangle: frame.AtlasRect,
                            color: new Color(Color.White, frame.A0));
                sprite.End();
            }
        }
Ejemplo n.º 5
0
        public async void Run(IBackgroundTaskInstance taskInstance)
        {
            BackgroundTaskDeferral deferral = taskInstance.GetDeferral();

            BuildFrames();

            var pilitr = PiLITErController.GetController();

            animator = new FrameAnimator(pilitr);

            animator.AddFrames(frames);

            animator.OnAnimationComplete += Animator_OnAnimationComplete;

            await Task.Run(async() =>
            {
                while (true)
                {
                    await animator.PlayAsync();
                }
            });
        }
Ejemplo n.º 6
0
        public void Draw(FrameAnimator animator, Matrix world)
        {
            Frame frame = animator.CurrentFrame;

            if (frame != null && frame.Texture != null)
            {
                if (animator.Position != Point.Zero)
                {
                    world *= Matrix.CreateTranslation(animator.Position.X, animator.Position.Y, 0);
                }

                sprite.Begin(SpriteSortMode.Deferred, this.blendState, transformMatrix: world);
                sprite.Draw(frame.Texture,
                            Vector2.Zero,
                            frame.AtlasRect,
                            new Color(Color.White, frame.A0),
                            0,
                            frame.Origin.ToVector2(),
                            1,
                            SpriteEffects.None,
                            0);
                sprite.End();
            }
        }
Ejemplo n.º 7
0
 private void balloonBurstAnimationEnded(FrameAnimator animator, Juicy.AnimationSequence.AnimationStatus status)
 {
     if (animator.GO.MarkForDelete)
     {
         animator.GO.MarkForDelete = true;
     }
     else
     {
         animator.GO.MarkForDelete = true;
         BalloonCount--;
     }
 }
Ejemplo n.º 8
0
 void Awake()
 {
     frameAnimator = GetComponent <FrameAnimator>();
 }
Ejemplo n.º 9
0
    private void OnGUI()
    {
        if (grayTexture == null)
        {
            InitTextures();
        }


        GameObject activeGO = Selection.activeGameObject;

        if (activeGO == null)
        {
            EditorGUILayout.HelpBox("No GameObject selected!", MessageType.Warning);
        }
        else
        {
            anim = Selection.activeGameObject.GetComponent <FrameAnimator>();
        }

        if (anim == null)
        {
            EditorGUILayout.HelpBox("No Frame Animator selected!", MessageType.Warning);
        }
        else if (anim.frameAnimationsSO == null)
        {
            EditorGUILayout.HelpBox("No Frame Animatons ScriptabelObject found!", MessageType.Warning);
        }
        else
        {
            EditorGUI.BeginChangeCheck();

            animSO = anim.frameAnimationsSO;

            DrawLayouts();

            DrawAnimationList();
            DrawPreviewAnimation();
            DrawFrameButtons();
            DrawGeneralFrameInfo();
            DrawSpecialFrameInfo();

            if (currentAnimation != null)
            {
                if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.LeftArrow)
                {
                    currentFrameNr--;
                    if (currentFrameNr < 0)
                    {
                        currentFrameNr = currentAnimation.frames.Count - 1;
                    }
                }
                if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.RightArrow)
                {
                    currentFrameNr++;
                    if (currentFrameNr >= currentAnimation.frames.Count)
                    {
                        currentFrameNr = 0;
                    }
                }
            }
        }
    }
Ejemplo n.º 10
0
    protected void FixedUpdate()
    {
        if (flipX)
        {
            if (Velocity.x < 0)
            {
                spr.flipX = true;
            }
            else
            {
                spr.flipX = false;
            }
        }

        if (flipY)
        {
            if (Velocity.y > 0)
            {
                spr.flipY = true;
            }
            else
            {
                spr.flipY = false;
            }
        }

        if (destroyAfterTime != 0)
        {
            timer++;
        }

        if (Velocity.magnitude * 60 >= damagingSpeed)
        {
            int colNr = col.Cast(Vector2.zero, filter, collisions);

            if (colNr > 0)
            {
                for (int i = 0; i < collisions.Length; i++)
                {
                    Character chr = collisions[0].transform.GetComponentInParent <Character>();

                    if (chr != Owner)
                    {
                        damage.knockBackDirection = Velocity;
                        if (chr != null)
                        {
                            chr.GetHit(damage);
                        }

                        if (destroyIfGrounded)
                        {
                            Destroy(gameObject);
                        }
                    }
                }
            }
        }

        if (destroyIfGrounded)
        {
            if (ctr.grounded)
            {
                FrameAnimator anim = GetComponent <FrameAnimator>();

                if (anim != null)
                {
                    anim.ChangeAnimation("die");
                }
                else
                {
                    Destroy(gameObject);
                }
            }
        }

        if (destroyOnCollision)
        {
            if (ctr.collision)
            {
                FrameAnimator anim = GetComponent <FrameAnimator>();

                if (anim != null)
                {
                    anim.ChangeAnimation("die");
                }
                else
                {
                    Destroy(gameObject);
                }
            }
        }

        if (destroyOnCharacterHit)
        {
            if (ctr.characterHit)
            {
                FrameAnimator anim = GetComponent <FrameAnimator>();

                if (anim != null)
                {
                    anim.ChangeAnimation("die");
                }
                else
                {
                    Destroy(gameObject);
                }
            }
        }

        if (timer > destroyAfterTime)
        {
            FrameAnimator anim = GetComponent <FrameAnimator>();

            if (anim != null)
            {
                anim.ChangeAnimation("die");
            }
            else
            {
                Destroy(gameObject);
            }
        }
    }
Ejemplo n.º 11
0
        private GameObj createGiftSubObj()
        {
            GameObj g = new GiftObj();
            g.SpriteName = "gift";

            g.TouchNotifier = giftTouched;
            g.Scale = 1;
            FrameAnimator a = new FrameAnimator(45, 60);
            AnimationSequence flyingAnse = new AnimationSequence("dropping", 0, 6);
            flyingAnse.Mode = AnimationSequence.AnimationMode.LOOP;

            AnimationSequence burstingAnse = new AnimationSequence("bursting", 7, 9);
            burstingAnse.Mode = AnimationSequence.AnimationMode.STOP_AT_END;

            a.AddAnimation(flyingAnse);
            a.AddAnimation(burstingAnse);

            g.Animator = a;
            g.AnimationNotifier = giftAnimationEnded;
            g.Animator.CurrentAnimationName = "dropping";
            g.UpdateSpriteReference(game.SprManager);
            g.W = 50;

            return g;
        }
Ejemplo n.º 12
0
 void Awake()
 {
     frameAnimator      = GetComponent <FrameAnimator>();
     rectTransform      = GetComponentInParent <Room>().GetComponent <RectTransform>();
     characterTransform = GetComponentInParent <CharacterRoot>().GetComponent <RectTransform>();
 }
Ejemplo n.º 13
0
 protected void OnAnimationComplete(FrameAnimator animator, AnimationSequence.AnimationStatus status)
 {
     if (animator.CurrentAnimationName == STARRING)
     {
         animator.RewindCurrentAnimation();
         animator.CurrentAnimationName = NORMAL;
     }
 }
Ejemplo n.º 14
0
        protected void InitAnimator()
        {
            FrameAnimator animator = new FrameAnimator(55, 55);
            AnimationSequence seq = new AnimationSequence(NORMAL, 1, 1);
            seq.Mode = AnimationSequence.AnimationMode.LOOP;

            AnimationSequence starring = new AnimationSequence(STARRING, 2, 5);
            starring.Mode = AnimationSequence.AnimationMode.STOP_AT_END;

            AnimationSequence electro = new AnimationSequence(ELECTRO, 11, 14);
            electro.Mode = AnimationSequence.AnimationMode.LOOP;

            AnimationSequence killed = new AnimationSequence(KILLED, 15, 20);
            killed.Mode = AnimationSequence.AnimationMode.LOOP;

            animator.AddAnimation(seq);
            animator.AddAnimation(starring);
            animator.AddAnimation(electro);
            animator.AddAnimation(killed);

            animator.CurrentAnimationName = "starring";

            this.Animator = animator;
            this.AnimationNotifier = OnAnimationComplete;
        }
Ejemplo n.º 15
0
 private void explodeAnimationEnded(FrameAnimator animator, Juicy.AnimationSequence.AnimationStatus status)
 {
     animator.GO.MarkForDelete = true;
     explosionsRequired--;
     if (explosionsRequired == 0)
     {
         gameOverObj.Visible = true;
     }
 }
Ejemplo n.º 16
0
        private void addExplosion(bool afterEffect, Vector2 pos)
        {
            GameObj obj = new GameObj();

            obj.SpriteName = "explosive";

            FrameAnimator a = new FrameAnimator(200, 200);
            AnimationSequence bombing = new AnimationSequence("exploding", 0, 9);
            bombing.Mode = AnimationSequence.AnimationMode.STOP_AT_END;

            AnimationSequence bombing2 = new AnimationSequence("exploding2", 2, 9);

            a.AddAnimation(bombing);
            a.AddAnimation(bombing2);

            obj.Animator = a;
            obj.AnimationNotifier = explodeAnimationEnded;

            obj.Animator.CurrentAnimationName = afterEffect ? "exploding2" : "exploding";

            obj.UpdateSpriteReference(game.SprManager);
            obj.UpdatePosition((int) pos.X - 100 + random.Next(150), (int) pos.Y - 100 + random.Next(150));

            addAfterInit(obj);
        }
Ejemplo n.º 17
0
 private void giftAnimationEnded(FrameAnimator animator, Juicy.AnimationSequence.AnimationStatus status)
 {
     animator.GO.MarkForDelete = true;
 }
Ejemplo n.º 18
0
    private void Start()
    {
        anim = GetComponent <FrameAnimator>();

        anim.AnimationOver += Remove;
    }
Ejemplo n.º 19
0
        private BalloonObj makeBalloon(BalloonObj.BalloonType type, BalloonObj.BalloonColor color)
        {
            BalloonObj balloon = new BalloonObj();
            balloon.SpriteName = formBalloonName(type, color);
            balloon.Scale = 2;
            balloon.TouchNotifier = balloonTouched;
            balloon.Type = type;
            balloon.Color = color;

            FrameAnimator a = new FrameAnimator(196 / 4, BalloonObj.BalloonType.GIFT == type || BalloonObj.BalloonType.BOMB == type ? 80 : 60);
            AnimationSequence flyingAnse = new AnimationSequence("flying", 0, 3);
            flyingAnse.Mode = AnimationSequence.AnimationMode.LOOP;

            AnimationSequence burstingAnse = new AnimationSequence("bursting", 4, 7);
            burstingAnse.Mode = AnimationSequence.AnimationMode.STOP_AT_END;

            a.AddAnimation(flyingAnse);
            a.AddAnimation(burstingAnse);

            balloon.Animator = a;
            balloon.AnimationNotifier = balloonBurstAnimationEnded;
            balloon.Animator.CurrentAnimationName = "flying";

            balloon.UpdateSpriteReference(game.SprManager);
            balloon.W = balloon.Type == BalloonObj.BalloonType.BOMB ? 50 : 75;
            balloon.UpdatePosition(10 + random.Next(game.Graphics.PreferredBackBufferWidth - 100), game.Graphics.PreferredBackBufferHeight + 20);
            screenHeight = game.Graphics.PreferredBackBufferHeight;

            balloon.BalloonOutNotifier = balloonOutEvent;
            balloon.TouchNotifier = balloonTouched;
            balloon.TouchesRequiredToBust = 1;

            if (BalloonObj.BalloonType.BOMB == type)
            {
                balloon.updateSpeed(0, -2.25f - ((float) random.NextDouble())*BombSpeedVar);
            }
            else if (BalloonObj.BalloonType.GIFT == type)
            {
                balloon.updateSpeed(0, -3.0f - ((float)random.NextDouble())*GiftSpeedVar);
            }
            else
            {
                balloon.updateSpeed(0, MinBalloonSpeed - ((float)random.NextDouble())*SpeedVar);
            }

            return balloon;
        }