/// <summary> /// Metoda rysująca grafikę /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void pictureBoxGraphics_Paint(object sender, PaintEventArgs e) { e.Graphics.DrawImage(Properties.Resources.street, 0, (int)streetPosY, Properties.Resources.street.Width, Properties.Resources.street.Height); e.Graphics.DrawImage(Properties.Resources.street, 0, (int)streetPosY - 1024, Properties.Resources.street.Width, Properties.Resources.street.Height); PlayerSingleton.GetInstance().PlayersCar.Draw(e); randomCars.Draw(e); }
/// <summary> /// Funkcja wykrywająca kolizje samochodu gracza z losowymi samochodami /// </summary> public void DetectCollision() { var playersCar = PlayerSingleton.GetInstance().PlayersCar; foreach (Car car in randomCars.RandomCarsList) { if ((playersCar.PosX + 50 > car.PosX && playersCar.PosX < car.PosX + 50) && (playersCar.PosY < car.PosY + 140 && playersCar.PosY > car.PosY - 140)) { collision = true; } } }
/// <summary> /// Metoda obsługująca timer (1 tick gry) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gameTickTimer_Tick(object sender, EventArgs e) { // Pojawianie się pojazdów if (timer == 10) { randomCars.SetRandomCar(0, gameSpeed); } if (timer == 200) { randomCars.SetRandomCar(1, gameSpeed); } if (timer == 500) { randomCars.SetRandomCar(2, gameSpeed); } if (timer == 1500) { randomCars.SetRandomCar(3, gameSpeed); } if (timer == 3000) { randomCars.SetRandomCar(4, gameSpeed); } PlayerSingleton.GetInstance().SteerCar(); MoveStreet(); randomCars.MoveRandomCars(gameSpeed); if (gameSpeed < maxGameSpeed) { gameSpeed += 0.005 + PlayerSingleton.GetInstance().PlayersCar.Speed *0.001; } labelScore.Text = "Wynik:\n" + (int)((gameSpeed - 2) * 10); DetectCollision(); pictureBoxGraphics.Refresh(); if (collision) { gameTickTimer.Stop(); MessageBox.Show("Porażka!\nTwój wynik: " + (int)((gameSpeed - 2) * 10)); collision = false; this.Close(); } timer++; if (timer > 4000) { timer = 0; } }
/// <summary> /// Metoda obsługująca puszcanie przycisków /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void GameForm_KeyUp(object sender, KeyEventArgs e) { PlayerSingleton.GetInstance().KeyUp(e); }