Ejemplo n.º 1
0
        //KeyboardEventHandler, reference in Xaml code KeyDown="OnKeyDownHandler"
        private void OnKeyDownHandler(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
            case Key.P:     //enkel (on)pauzeren tijdens spel
                if (_huidigBlok != null)
                {
                    Pauze();
                }
                break;

            case Key.Left:
                if (!_pauze)
                {
                    _huidigBlok.MoveHorizontal(_veld, -1);
                    ChangeColor();
                }
                break;

            case Key.Right:
                if (!_pauze)
                {
                    _huidigBlok.MoveHorizontal(_veld, 1);
                    ChangeColor();
                }
                break;

            case Key.Up:
                if (!_pauze)
                {
                    _huidigBlok.Kantel(_veld);
                    ChangeColor();
                }
                break;

            case Key.Down:
                if (!_pauze)
                {
                    _huidigBlok.MoveDown(_veld);
                    ChangeColor();
                }
                break;
            }
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            System.Console.OutputEncoding = System.Text.Encoding.Unicode;


            _timer.Interval = 500;
            _timer.Enabled  = true;
            _timer.Elapsed += new ElapsedEventHandler(TimerTikEvent);

            Console.WriteLine(Visual()); //flicker => wpf buttons
            while (true)                 //...
            {
                int random = _rnd.Next(7);
                switch (random)
                {
                case 0:
                    _huidigBlok = new Vierkant(_veld);
                    break;

                case 1:
                    _huidigBlok = new Lange(_veld);
                    break;

                case 2:
                    _huidigBlok = new Vork(_veld);
                    break;

                case 3:
                    _huidigBlok = new Z(_veld);
                    break;

                case 4:
                    _huidigBlok = new GespiegeldeZ(_veld);
                    break;

                case 5:
                    _huidigBlok = new El(_veld);
                    break;

                case 6:
                    _huidigBlok = new GespiegeldeEl(_veld);
                    break;
                }
                _nieuwBlokNodig = false;
                Console.Clear();
                Console.WriteLine(Visual());
                while (!_nieuwBlokNodig)
                {
                    if (Console.KeyAvailable)
                    {
                        ConsoleKeyInfo cki = Console.ReadKey();
                        switch (cki.Key)
                        {
                        case ConsoleKey.LeftArrow:
                            _huidigBlok.MoveHorizontal(_veld, -1);
                            Console.Clear();
                            Console.WriteLine(Visual());
                            break;

                        case ConsoleKey.RightArrow:
                            _huidigBlok.MoveHorizontal(_veld, 1);
                            Console.Clear();
                            Console.WriteLine(Visual());
                            break;

                        case ConsoleKey.UpArrow:
                            _huidigBlok.Kantel(_veld);
                            Console.Clear();
                            Console.WriteLine(Visual());
                            break;

                        case ConsoleKey.DownArrow:
                            _huidigBlok.MoveDown(_veld);
                            Console.Clear();
                            Console.WriteLine(Visual());
                            if (!_huidigBlok.KanZakken(_veld))
                            {
                                _nieuwBlokNodig = true;                                   //efficienter, eerst op kanzakken check
                            }
                            break;
                        }
                    }
                }
                _veld.CheckVerwijderVolleLijnen();
                Console.Clear();
                Console.WriteLine(Visual());
            }
        }