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; }
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; } }
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)); }
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(); } }
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(); } }); }
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(); } }
private void balloonBurstAnimationEnded(FrameAnimator animator, Juicy.AnimationSequence.AnimationStatus status) { if (animator.GO.MarkForDelete) { animator.GO.MarkForDelete = true; } else { animator.GO.MarkForDelete = true; BalloonCount--; } }
void Awake() { frameAnimator = GetComponent <FrameAnimator>(); }
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; } } } } }
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); } } }
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; }
void Awake() { frameAnimator = GetComponent <FrameAnimator>(); rectTransform = GetComponentInParent <Room>().GetComponent <RectTransform>(); characterTransform = GetComponentInParent <CharacterRoot>().GetComponent <RectTransform>(); }
protected void OnAnimationComplete(FrameAnimator animator, AnimationSequence.AnimationStatus status) { if (animator.CurrentAnimationName == STARRING) { animator.RewindCurrentAnimation(); animator.CurrentAnimationName = NORMAL; } }
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; }
private void explodeAnimationEnded(FrameAnimator animator, Juicy.AnimationSequence.AnimationStatus status) { animator.GO.MarkForDelete = true; explosionsRequired--; if (explosionsRequired == 0) { gameOverObj.Visible = true; } }
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); }
private void giftAnimationEnded(FrameAnimator animator, Juicy.AnimationSequence.AnimationStatus status) { animator.GO.MarkForDelete = true; }
private void Start() { anim = GetComponent <FrameAnimator>(); anim.AnimationOver += Remove; }
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; }