Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        // 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
        }