Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno c# Switch - default - když není stisknuté tlačítko

Dobrý den!

Mám hru Had - kde ve Switchi si vlastně hlídám co je zmáčknuto za tlačítko a podle toho se had pohybuje. Mám ale problém, že když se zmáčkne jakékoliv jiné tlačítko - had se zastaví na místě. Chtěl bych, aby když se zmáčkne jiné tlačítko, aby had pokračoval v tom směru, ve kterém běžel.

 private ConsoleKeyInfo Pohyb(ConsoleKeyInfo key1)
        {
            this.key1 = key1;

            switch (key1.Key)
            {
                case ConsoleKey.UpArrow:
                    {
                        
                    }
                case ConsoleKey.DownArrow:
                    {
                       
                    }
                case ConsoleKey.LeftArrow:
                    {
                       
                    }
                case ConsoleKey.RightArrow:
                    {
                       
                    }

                case ConsoleKey.R:
                    Restart();
                    break;

                case ConsoleKey.P:  // Pauza
                    break;

                default:
                    goto ;

            }
            return key1;
        }

Zřejmě je potřeba to hodit do 'default' - ale nevim právě přesně co.

Děkuji za každou radu.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
• Had namespace Had { public enum Direction { Up, Down, Left, Right }; public class Settings { publ… nový
CoCoChanel 24.11.2015 19:57
CoCoChanel
for (int i = Had.Count - 1; i >= 0; i--) { if (i == 0) { switch (Settings.direction) { case Directio… nový
CoCoChanel 24.11.2015 20:18
CoCoChanel
Mockrát všem děkuju ... pomohli jste mi uvědomit si zase pár věcí :) poslední
kubelík 30.11.2015 19:24
kubelík

• Had

namespace Had
{
    public enum Direction
    {
        Up,
        Down,
        Left,
        Right
    };

    public class Settings
    {
        public static int Width { get; set; }
        public static int Height { get; set; }
        public static int Speed { get; set; }
        public static int Score { get; set; }
        public static int Points { get; set; }
        public static bool GameOver { get; set; }
        public static Direction direction { get; set; }

        public Settings()
        {
            Width = 15;
            Height = 15;
            Speed = 15;
            Score = 0;
            Points = 100;
            GameOver = false;
            direction = Direction.Down;
        }
    }


}

• Input

using System.Collections;
using System.Windows.Forms;
namespace Had
{
    internal class Input
    {       
       private static Hashtable keyTable = new Hashtable();

        //verifikce zmacklého tlacitka
        public static bool KeyPressed(Keys key)
        {
            if (keyTable[key] == null)
            {
                return false;
            }

            return (bool) keyTable[key];
        }

        //Verifikace jestli je zmacklé
        public static void ChangeState(Keys key, bool state)
        {
            keyTable[key] = state;
        }
    }
}

:-p

for (int i = Had.Count - 1; i >= 0; i--)
            {             
                if (i == 0)
                {
                    switch (Settings.direction)
                    {
                        case Direction.Right:
                            Had[i].X++;
                            break;
                        case Direction.Left:
                            Had[i].X--;
                            break;
                        case Direction.Up:
                            Had[i].Y--;
                            break;
                        case Direction.Down:
                            Had[i].Y++;
                            break;
                    }

:-) Ve <VB> byla vyhoda, ze za kazdy psat 'break' nebyla potreba.

Zpět do poradny Odpovědět na původní otázku Nahoru