コード例 #1
0
        public Sprite MarioSprite(IMarioPowerUpState power, IMarioActionState action, bool Facing, Vector2 loc)
        {
            int type = MarioSpriteType(action, Facing);

            type = MarioPowerUp(power, type);
            return(BuildSprite((Mario)type, loc));
        }
コード例 #2
0
        public static int MarioSpriteType(IMarioActionState a, bool Facing) //bit adding to find correct action state enum.
        {
            int buildMario = 0x010;                                         //default to crouching

            switch (a)
            {
            case Falling _:
                buildMario += 0x030;
                break;

            case Idling _:
                buildMario += 0x020;
                break;

            case Jumping _:
                buildMario += 0x030;
                break;

            case Running _:
                buildMario += 0x040;
                break;
            }

            if (Facing)//right
            {
                buildMario += 0x050;
            }
            return(buildMario);
        }
コード例 #3
0
ファイル: Running.cs プロジェクト: berhane02/MarioGame
        public override void Enter(IMarioActionState preState)
        {
            CurrentState  = this;
            PreviousState = preState;
            Mario.Sprite  = Mario.Factory.MarioSprite(Mario.PowerState, CurrentState, Mario.Facing, Mario.SpritePosition);

            if (Mario.Facing)
            {
                Mario.SpriteVelocity = new Vector2(3, 0);
            }
            else
            {
                Mario.SpriteVelocity = new Vector2(-3, 0);
            }
            //if (Mario.Facing&&(int)velocity.X==0)//right
            //{
            //    Mario.SpriteVelocity = new Vector2(3, 0);
            //}
            //else if ((int) velocity.X == 0) //left
            //{
            //    Mario.SpriteVelocity = new Vector2(-3, 0);
            //}
            //else
            //{
            //    Mario.SpriteVelocity = new Vector2(velocity.X, 0);
            //}
        }
コード例 #4
0
 public MarioHoldingShellState(Mario context, AbstractKoopa koopa, IMarioActionState state) : base(context)
 {
     Previous         = state;
     koopa.Held       = true;
     _koopa           = koopa;
     koopa.Collidable = false;
 }
コード例 #5
0
 public override void Enter(IMarioActionState preState)
 {
     PreviousState        = preState.PreviousState;//should be idle
     CurrentState         = this;
     Mario.Sprite         = Mario.Factory.MarioSprite(Mario.PowerState, PreviousState, Mario.Facing, Mario.SpritePosition);
     Mario.SpriteVelocity = Mario.Pipe.WarpVelocity;
     Mario.Sounds.PlaySound(EventSoundEffects.EventSounds.PipeTravel);
 }
コード例 #6
0
 public override void Enter(IMarioActionState preState)
 {
     CurrentState  = this;
     PreviousState = preState;
     if (!(Mario.PowerState is MarioStandardState))
     {
         Mario.Sprite = Mario.Factory.MarioSprite(Mario.PowerState, CurrentState, Mario.Facing, Mario.SpritePosition);
     }
 }
コード例 #7
0
ファイル: Jumping.cs プロジェクト: berhane02/MarioGame
        public override void Enter(IMarioActionState preState)
        {
            Mario.Sounds.PlaySound(Mario.Jumping);
            CurrentState  = this;
            PreviousState = preState;
            Vector2 velocity = Mario.SpriteVelocity;

            Mario.Sprite =
                Mario.Factory.MarioSprite(Mario.PowerState, CurrentState, Mario.Facing, Mario.SpritePosition);
            Mario.SpriteVelocity = new Vector2(velocity.X, -5);
        }
コード例 #8
0
 public override void Enter(IMarioActionState preState)
 {
     CurrentState  = this;
     PreviousState = preState;
     if (preState is Jumping)
     {
         PreviousState = preState.PreviousState;
     }
     Velocity             = Mario.SpriteVelocity;
     Mario.Sprite         = Mario.Factory.MarioSprite(Mario.PowerState, CurrentState, Mario.Facing, Mario.SpritePosition);
     Mario.SpriteVelocity = new Vector2(Velocity.X, 5);
 }
コード例 #9
0
 public virtual void SetPrevious(IMarioActionState newPrevious)
 {
     Previous = newPrevious;
 }
コード例 #10
0
 public MarioActionStateJump(Mario context, IMarioActionState state) : base(context)
 {
     Previous = state;
 }
コード例 #11
0
ファイル: ActionState.cs プロジェクト: berhane02/MarioGame
 public void Falling()
 {
     CurrentState.ExitState();
     CurrentState = new Falling(Mario);
     CurrentState.Enter(this);
 }
コード例 #12
0
ファイル: ActionState.cs プロジェクト: berhane02/MarioGame
 public void Idle()
 {
     CurrentState.ExitState();
     CurrentState = new Idling(Mario);
     CurrentState.Enter(this);
 }
コード例 #13
0
ファイル: ActionState.cs プロジェクト: berhane02/MarioGame
 public virtual void Enter(IMarioActionState preState)
 {
     CurrentState  = this;
     PreviousState = preState;
     Mario.Sprite  = Mario.Factory.MarioSprite(Mario.PowerState, CurrentState, Mario.Facing, Mario.SpritePosition);
 }