예제 #1
0
        /// <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;
            }
        }