Ejemplo n.º 1
0
 private void Form1_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.KeyData == Keys.Space)
     {
         e.Handled = true;
     }
     if (e.KeyData == Keys.Up && Mapa.JeVolnoNeboDuch(Mapa.souradnicePacmana.y - 1, Mapa.souradnicePacmana.x))
     {
         stisknutaSipka = StisknutaSipka.nahoru;
     }
     if (e.KeyData == Keys.Down && Mapa.JeVolnoNeboDuch(Mapa.souradnicePacmana.y + 1, Mapa.souradnicePacmana.x))
     {
         stisknutaSipka = StisknutaSipka.dolu;
     }
     if (e.KeyData == Keys.Left && Mapa.JeVolnoNeboDuch(Mapa.souradnicePacmana.y, Mapa.souradnicePacmana.x - 1))
     {
         stisknutaSipka = StisknutaSipka.doleva;
     }
     if (e.KeyData == Keys.Right && Mapa.JeVolnoNeboDuch(Mapa.souradnicePacmana.y, Mapa.souradnicePacmana.x + 1))
     {
         stisknutaSipka = StisknutaSipka.doprava;
     }
 }
Ejemplo n.º 2
0
        public override void UdelejKrok()
        {
            int nove_x = x;
            int nove_y = y;

            if (Mapa.PacmanUtika)
            {
                if (!Mapa.JeDuch(y, x))
                {
                    switch (Mapa.form.stisknutaSipka)
                    {
                    case StisknutaSipka.doprava:
                        if (Mapa.JeVolno(nove_y, nove_x + 1))
                        {
                            Mapa.PresunPacmana(nove_y, nove_x, nove_y, nove_x + 1);
                            x++;
                        }
                        break;

                    case StisknutaSipka.doleva:
                        if (Mapa.JeVolno(nove_y, nove_x - 1))
                        {
                            Mapa.PresunPacmana(nove_y, nove_x, nove_y, nove_x - 1);
                            x--;
                        }
                        break;

                    case StisknutaSipka.dolu:
                        if (Mapa.JeVolno(nove_y + 1, nove_x))
                        {
                            Mapa.PresunPacmana(nove_y, nove_x, nove_y + 1, nove_x);
                            y++;
                        }
                        break;

                    case StisknutaSipka.nahoru:
                        if (Mapa.JeVolno(nove_y - 1, nove_x))
                        {
                            Mapa.PresunPacmana(nove_y, nove_x, nove_y - 1, nove_x);
                            y--;
                        }
                        break;

                    case StisknutaSipka.zadna:
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    //tady jeste rozdelit pomoci 'if' na pripad, kdy je pacman nastaven na nesmrtelneho
                    Zemri();
                }
            }
            else
            {
                if (!Mapa.JeDuch(y, x))
                {
                    switch (Mapa.form.stisknutaSipka)
                    {
                    case StisknutaSipka.doprava:
                        if (Mapa.JeVolnoNeboDuch(nove_y, nove_x + 1))
                        {
                            Mapa.PresunPacmana(nove_y, nove_x, nove_y, nove_x + 1);
                            x++;
                        }
                        break;

                    case StisknutaSipka.doleva:
                        if (Mapa.JeVolnoNeboDuch(nove_y, nove_x - 1))
                        {
                            Mapa.PresunPacmana(nove_y, nove_x, nove_y, nove_x - 1);
                            x--;
                        }
                        break;

                    case StisknutaSipka.dolu:
                        if (Mapa.JeVolnoNeboDuch(nove_y + 1, nove_x))
                        {
                            Mapa.PresunPacmana(nove_y, nove_x, nove_y + 1, nove_x);
                            y++;
                        }
                        break;

                    case StisknutaSipka.nahoru:
                        if (Mapa.JeVolnoNeboDuch(nove_y - 1, nove_x))
                        {
                            Mapa.PresunPacmana(nove_y, nove_x, nove_y - 1, nove_x);
                            y--;
                        }
                        break;

                    case StisknutaSipka.zadna:
                        break;

                    default:
                        break;
                    }
                }
                else
                {
                    Zemri();
                }
            }
        }