SteelGolem icon

Untitled

SteelGolem | PRO | 07/18/19 01:43:14 PM UTC | 0 ⭐ | 485 👁️ | Never ⏰ | []
C# |

12.02 KB

|

None

|

0 👍

/

0 👎

        void UpdatePlayer()
        {
            if (player.state == "waiting")
            {
                string dpad = "";
                if (keyboard.IsKeyDown(Keys.Up) || gamepad.IsButtonDown(Buttons.DPadUp)) dpad = "u";
                if (keyboard.IsKeyDown(Keys.Down) || gamepad.IsButtonDown(Buttons.DPadDown)) dpad = "d";
                if (keyboard.IsKeyDown(Keys.Left) || gamepad.IsButtonDown(Buttons.DPadLeft)) dpad = "l";
                if (keyboard.IsKeyDown(Keys.Right) || gamepad.IsButtonDown(Buttons.DPadRight)) dpad = "r";
 
                if (attackQueued ||
                    (keyboard.IsKeyDown(Keys.X) && !lastKeyboard.IsKeyDown(Keys.X)) ||
                    (gamepad.IsButtonDown(Buttons.A) && !lastGamepad.IsButtonDown(Buttons.A)))
                {
                    if (dpad == "")
                    {
                        player.state = "swinging_sword";
                        player.stateFrames = 0;
                        sword = new Sprite();
                        sword.state = "swinging";
                        sword.dir = player.dir;
                        sword.stateFrames = 0;
                        attackQueued = false;
                        goto PLAYER_SWINGING_SWORD;
                    }
                    else
                    {
                        player.state = "stabbing_sword";
                        player.stateFrames = 0;
                        sword = new Sprite();
                        sword.state = "stabbing";
                        sword.dir = player.dir;
                        sword.stateFrames = 0;
                        attackQueued = false;
                        goto PLAYER_STABBING_SWORD;
                    }
                }
 
                if (dpad != "")
                {
                    player.state = "walking";
                    player.stateFrames = 0;
                    player.dir = dpad;
                }
            }
 
            if (player.state == "walking")
            {
                if (player.dir == "u") player.y--;
                if (player.dir == "d") player.y++;
                if (player.dir == "l") player.x--;
                if (player.dir == "r") player.x++;
                if ((keyboard.IsKeyDown(Keys.X) && !lastKeyboard.IsKeyDown(Keys.X)) ||
                    (gamepad.IsButtonDown(Buttons.A) && !lastGamepad.IsButtonDown(Buttons.A))) attackQueued = true;
                int frame = 1;
                if (player.stateFrames >= 4) frame = 2;
                player.srcRect = "hero_walking_" + player.dir + frame;
                player.stateFrames++;
                if (player.stateFrames == 8)
                {
                    player.state = "waiting";
                    player.srcRect = "hero_walking_" + player.dir + "1";
                }
                return;
            }
 
            PLAYER_SWINGING_SWORD:
            if (player.state == "swinging_sword")
            {
                int frame = 1;
                if (player.stateFrames >= 8) frame = 2;
                player.srcRect = "hero_attacking_" + player.dir + frame;
                if (player.stateFrames == 16)
                {
                    player.state = "waiting";
                    player.srcRect = "hero_walking_" + player.dir + "1";
                }
                player.stateFrames++;
                return;
            }
 
            PLAYER_STABBING_SWORD:
            if (player.state == "stabbing_sword")
            {
                player.srcRect = "hero_attacking_" + player.dir + "2";
                if (player.stateFrames == 12)
                {
                    player.state = "waiting";
                    player.srcRect = "hero_walking_" + player.dir + "1";
                }
                player.stateFrames++;
                return;
            }
        }
 
        void UpdateSword()
        {
            if (sword.state == "swinging")
            {
                if (sword.dir == "u")
                {
                    if (sword.stateFrames >= 0 && sword.stateFrames < 4)
                    {
                        sword.srcRect = "sword_se";
                        sword.x = player.x + 16;
                        sword.y = player.y + 10;
                    }
                    if (sword.stateFrames >= 4 && sword.stateFrames < 8)
                    {
                        sword.srcRect = "sword_e";
                        sword.x = player.x + 16;
                        sword.y = player.y + 2;
                    }
                    if (sword.stateFrames >= 8 && sword.stateFrames < 12)
                    {
                        sword.srcRect = "sword_ne";
                        sword.x = player.x + 10;
                        sword.y = player.y - 10;
                    }
                    if (sword.stateFrames >= 12 && sword.stateFrames < 16)
                    {
                        sword.srcRect = "sword_n";
                        sword.x = player.x;
                        sword.y = player.y - 16;
                    }
                }
                if (sword.dir == "d")
                {
                    if (sword.stateFrames >= 0 && sword.stateFrames < 4)
                    {
                        sword.srcRect = "sword_nw";
                        sword.x = player.x - 14;
                        sword.y = player.y - 9;
                    }
                    if (sword.stateFrames >= 4 && sword.stateFrames < 8)
                    {
                        sword.srcRect = "sword_w";
                        sword.x = player.x - 16;
                        sword.y = player.y;
                    }
                    if (sword.stateFrames >= 8 && sword.stateFrames < 12)
                    {
                        sword.srcRect = "sword_sw";
                        sword.x = player.x - 11;
                        sword.y = player.y + 12;
                    }
                    if (sword.stateFrames >= 12 && sword.stateFrames < 16)
                    {
                        sword.srcRect = "sword_s";
                        sword.x = player.x;
                        sword.y = player.y + 16;
                    }
                }
                if (sword.dir == "l")
                {
                    if (sword.stateFrames >= 0 && sword.stateFrames < 4)
                    {
                        sword.srcRect = "sword_ne";
                        sword.x = player.x + 10;
                        sword.y = player.y - 8;
                    }
                    if (sword.stateFrames >= 4 && sword.stateFrames < 8)
                    {
                        sword.srcRect = "sword_n";
                        sword.x = player.x;
                        sword.y = player.y - 11;
                    }
                    if (sword.stateFrames >= 8 && sword.stateFrames < 12)
                    {
                        sword.srcRect = "sword_nw";
                        sword.x = player.x - 14;
                        sword.y = player.y - 5;
                    }
                    if (sword.stateFrames >= 12 && sword.stateFrames < 16)
                    {
                        sword.srcRect = "sword_w";
                        sword.x = player.x - 16;
                        sword.y = player.y + 3;
                    }
                }
                if (sword.dir == "r")
                {
                    if (sword.stateFrames >= 0 && sword.stateFrames < 4)
                    {
                        sword.srcRect = "sword_nw";
                        sword.x = player.x - 10;
                        sword.y = player.y - 8;
                    }
                    if (sword.stateFrames >= 4 && sword.stateFrames < 8)
                    {
                        sword.srcRect = "sword_n";
                        sword.x = player.x;
                        sword.y = player.y - 11;
                    }
                    if (sword.stateFrames >= 8 && sword.stateFrames < 12)
                    {
                        sword.srcRect = "sword_ne";
                        sword.x = player.x + 14;
                        sword.y = player.y - 5;
                    }
                    if (sword.stateFrames >= 12 && sword.stateFrames < 16)
                    {
                        sword.srcRect = "sword_e";
                        sword.x = player.x + 16;
                        sword.y = player.y + 3;
                    }
                }
 
                if (sword.stateFrames == 16)
                {
                    sword = null;
                    return;
                }
                
                sword.stateFrames++;
            }
 
            if (sword.state == "stabbing")
            {
                if (sword.dir == "u")
                {
                    sword.srcRect = "sword_n";
                    if (sword.stateFrames >= 0 && sword.stateFrames < 4)
                    {
                        sword.x = player.x + 2;
                        sword.y = player.y - 8;
                    }
                    if (sword.stateFrames >= 6 && sword.stateFrames < 9)
                    {
                        sword.x = player.x + 2;
                        sword.y = player.y - 16;
                    }
                    if (sword.stateFrames >= 10 && sword.stateFrames < 13)
                    {
                        sword.x = player.x + 2;
                        sword.y = player.y - 8;
                    }
                }
                if (sword.dir == "d")
                {
                    sword.srcRect = "sword_s";
                    if (sword.stateFrames >= 0 && sword.stateFrames < 4)
                    {
                        sword.x = player.x - 2;
                        sword.y = player.y + 8;
                    }
                    if (sword.stateFrames >= 6 && sword.stateFrames < 9)
                    {
                        sword.x = player.x - 2;
                        sword.y = player.y + 16;
                    }
                    if (sword.stateFrames >= 10 && sword.stateFrames < 13)
                    {
                        sword.x = player.x - 2;
                        sword.y = player.y + 8;
                    }
                }
                if (sword.dir == "l")
                {
                    sword.srcRect = "sword_w";
                    if (sword.stateFrames >= 0 && sword.stateFrames < 4)
                    {
                        sword.x = player.x - 8;
                        sword.y = player.y + 3;
                    }
                    if (sword.stateFrames >= 6 && sword.stateFrames < 9)
                    {
                        sword.x = player.x - 16;
                        sword.y = player.y + 3;
                    }
                    if (sword.stateFrames >= 10 && sword.stateFrames < 13)
                    {
                        sword.x = player.x - 8;
                        sword.y = player.y + 3;
                    }
                }
                if (sword.dir == "r")
                {
                    sword.srcRect = "sword_e";
                    if (sword.stateFrames >= 0 && sword.stateFrames < 4)
                    {
                        sword.x = player.x + 8;
                        sword.y = player.y + 3;
                    }
                    if (sword.stateFrames >= 6 && sword.stateFrames < 9)
                    {
                        sword.x = player.x + 16;
                        sword.y = player.y + 3;
                    }
                    if (sword.stateFrames >= 10 && sword.stateFrames < 13)
                    {
                        sword.x = player.x + 8;
                        sword.y = player.y + 3;
                    }
                }
 
                if (sword.stateFrames == 12)
                {
                    sword = null;
                    return;
                }
 
                sword.stateFrames++;
            }
        }

Comments