private void UpdateScreen(object sender, EventArgs e) { if (GlobalSettings.GameOver) { if (Inputs.KeyPressed(Keys.Enter)) { StartNewGame(); } } else { if (Inputs.KeyPressed(Keys.Right) && GlobalSettings.Direction != Direction.Left) { GlobalSettings.Direction = Direction.Right; } else if (Inputs.KeyPressed(Keys.Left) && GlobalSettings.Direction != Direction.Right) { GlobalSettings.Direction = Direction.Left; } else if (Inputs.KeyPressed(Keys.Up) && GlobalSettings.Direction != Direction.Down) { GlobalSettings.Direction = Direction.Up; } else if (Inputs.KeyPressed(Keys.Down) && GlobalSettings.Direction != Direction.Up) { GlobalSettings.Direction = Direction.Down; } MovePlayer(); } pbCanvas.Invalidate(); }
// Zdarzenie dodane do timera które uaktualnie co ustalony interwał czasu plansze private void UpdateScreen(object sender, EventArgs e) { if (Settings.GameOver) { if (Inputs.KeyPressed(Keys.F)) { StartGame(); } } else { // Obsługa klawiszy, jest troche kiepska... ale wystarczy // 1. Im wolniejszy będzie interwał czasu w timerze tym trudniej wysterować węża // 2. Nie możemy używać strzeałek bo po prostacku przechwytujemy zdarzenia z głównej formy Form // w Form1_KeyDown i Form1_KeyUp, a tam strzałki, enter itp. są zarezerwowane // dodatkowe warunki są po to żeby nie można było zawracać wężem w miejscu, czyli maks obrót o 90 stopni if (Inputs.KeyPressed(Keys.D) && Settings.Dir != Direction.Left) { Settings.Dir = Direction.Right; } else if (Inputs.KeyPressed(Keys.A) && Settings.Dir != Direction.Right) { Settings.Dir = Direction.Left; } else if (Inputs.KeyPressed(Keys.W) && Settings.Dir != Direction.Down) { Settings.Dir = Direction.Up; } else if (Inputs.KeyPressed(Keys.S) && Settings.Dir != Direction.Up) { Settings.Dir = Direction.Down; } MovePlayer(); } pbCanvas.Invalidate(); // spowoduje odrysowania - wywołanie zdarzenia pbCanvas_Paint }