/// <summary> /// This gets called whenever there is a transition to a new state /// </summary> private void onEntry() { //These are, so far, the only two states that need an onEntry method, //but we'll leave the structure here in case more is needed switch (_myBehaviourState) { case JetMinionBehaviourState.FIRE: _timerFire = 0; break; default: break; } switch (_myVisualState) { case JetMinionVisualState.EXPLODING: //TODO: //This will probably insantiate the animation class, this //way it is only called once when this state is entered Vector2 explosionSize = new Vector2(ExplosionLeftSpriteBounds[0].Width, ExplosionRightSpriteBounds[0].Height) * ExplosionScale; Rectangle explosionBounds = new Rectangle(0, 0, (int)explosionSize.X, (int)explosionSize.Y); AnimSet explosionLeftSide = new AnimSet(ExplosionLeftSpriteBounds, _explosionSpriteSheet, explosionBounds, AnimType.LOOP, ExplosionIntervalTime); AnimSet explosionRightSide = new AnimSet(ExplosionRightSpriteBounds, _explosionSpriteSheet, explosionBounds, AnimType.LOOP, ExplosionIntervalTime); ExplosionSet newExplosion = new ExplosionSet(_position); newExplosion.AddAnimSet(explosionLeftSide, Vector2.Zero); newExplosion.AddAnimSet(explosionRightSide, new Vector2(explosionBounds.Width, 0) * ExplosionScale); _explosionAnimator.AddExplosion(newExplosion, Vector2.Zero); _explosionAnimator.Start(); break; default: break; } }