//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; } }
private static void TimerTikEvent(object sender, EventArgs e) { if (_huidigBlok != null) { _huidigBlok.MoveDown(_veld);//efficienter, eerst op kanzakken check if (!_huidigBlok.KanZakken(_veld)) { _nieuwBlokNodig = true; } Console.Clear(); Console.WriteLine(Visual()); } }
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()); } }