예제 #1
0
        public void AddObstacle()
        {
            if (!gameBoard.ObstacleCondition())
            {
                return;
            }
            Random _random = new Random();
            int    _chance = _random.Next(0, 25);

            if (gameBoard.Stage == GameStage.BonusStage)
            {
                if (gameBoard.Obstacles.Count == 0)
                {
                    gameBoard.RandomSpawnVehicle(p, new Score(startLane2X, startLaneY));
                    gameBoard.Obstacles [gameBoard.Obstacles.Count - 1].SpeedY = 2000;
                }
            }
            else
            {
                if (_chance == 0 || _chance == 1 || _chance == 2)
                {
                    gameBoard.RandomSpawnVehicle(p, new Car(startLane2X, startLaneY));
                }
                else if (_chance == 3 || _chance == 4 || _chance == 5)
                {
                    gameBoard.RandomSpawnVehicle(p, new Lorry(startLane2X, startLaneY));
                }
                else if (_chance == 6 || _chance == 7 || _chance == 8)
                {
                    gameBoard.RandomSpawnVehicle(p, new Motorcycle(startLane2X, startLaneY));
                }
                else if (_chance == 9)
                {
                    gameBoard.RandomSpawnVehicle(p, new Fuel(startLane2X, startLaneY));
                }
                else if (_chance == 10 || _chance == 11 || _chance == 12)
                {
                    gameBoard.RandomSpawnVehicle(p, new Life(startLane2X, startLaneY));
                }
                else if (_chance == 13 || _chance == 14 || _chance == 15)
                {
                    gameBoard.RandomSpawnVehicle(p, new Invisible(startLane2X, startLaneY));
                }
                else if (_chance == 16 || _chance == 17)
                {
                    gameBoard.RandomSpawnVehicle(p, new Score(startLane2X, startLaneY));
                }
                else if (_chance == 18 || _chance == 19)
                {
                    gameBoard.RandomSpawnVehicle(p, new Bomb(startLane2X, startLaneY));
                }
                else if (_chance == 20 || _chance == 21)
                {
                    gameBoard.RandomSpawnVehicle(p, new Turbo(startLane2X, startLaneY));
                }
            }
        }
예제 #2
0
        public void TestSpawnVehicle()
        {
            GameBoard     gb = new GameBoard();
            PlayerVehicle p  = new PlayerVehicle(415, 570);

            ScoreBoard.Initialize(0, 3, 1, "Peak Hours");
            Car c = new Car(415, 20);

            gb.RandomSpawnVehicle(p, c);
            Assert.AreEqual(UtilityFunction.InitialY, c.Y);
        }
예제 #3
0
파일: TestAll.cs 프로젝트: leslielyj/dpdev
        public void TestSpawnVehicle()
        {
            GameBoard     gb = new GameBoard();
            PlayerVehicle p  = new PlayerVehicle(415, 570);
            ScoreBoard    s  = new ScoreBoard(0, 3, 1, "Peak Hours");
            Car           c  = new Car(415, 20);
            Lorry         l  = new Lorry(415, 20);
            Motorcycle    m  = new Motorcycle(415, 20);
            Fuel          f  = new Fuel(415, 20);

            gb.RandomSpawnVehicle(c, s, p);
            Assert.AreEqual(22.5, c.Y);
        }
예제 #4
0
파일: TestAll.cs 프로젝트: leslielyj/dpdev
        public void Testspeed()
        {
            GameBoard gb = new GameBoard();
            Stopwatch s1 = Stopwatch.StartNew();

            s1.Start();
            PlayerVehicle p = new PlayerVehicle(415, 570);
            ScoreBoard    s = new ScoreBoard(0, 0, 1, "Peak Hours");
            Car           c = new Car(415, 20);
            Lorry         l = new Lorry(415, 20);
            Motorcycle    m = new Motorcycle(415, 20);
            Fuel          f = new Fuel(415, 20);


            gb.RandomSpawnVehicle(c, s, p);

            Assert.AreEqual(2.5, c.Speed);
        }
예제 #5
0
파일: TestAll.cs 프로젝트: leslielyj/dpdev
        public void TestDrop()
        {
            GameBoard     gb = new GameBoard();
            PlayerVehicle p  = new PlayerVehicle(415, 570);
            ScoreBoard    s  = new ScoreBoard(0, 3, 1, "Peak Hours");
            Car           c  = new Car(415, 20);
            Lorry         l  = new Lorry(415, 20);
            Motorcycle    m  = new Motorcycle(415, 20);
            Fuel          f  = new Fuel(415, 20);


            while (gb.Spawned == false)
            {
                gb.RandomSpawnVehicle(c, s, p);
            }

            Assert.AreEqual(620, c.Y);
        }
예제 #6
0
파일: GameMain.cs 프로젝트: leslielyj/dpdev
        public static void Main()
        {
            //Open the game window
            SwinGame.OpenGraphicsWindow("GameMain", 900, 650);


            GameBoard gb = new GameBoard();

            gb.BackgroundColor = SwinGame.RandomRGBColor(255);
            ObstacleType  obstacleToAdd = ObstacleType.Car;
            PlayerVehicle p             = new PlayerVehicle(415, 570);
            ScoreBoard    s             = new ScoreBoard(0, 3, 1, "Peak Hours");

            //Run the game loop
            while (false == SwinGame.WindowCloseRequested())
            {
                Random     _random = new Random();
                int        _chance = _random.Next(0, 10);
                Car        c       = new Car(415, 20);
                Lorry      l       = new Lorry(415, 20);
                Motorcycle m       = new Motorcycle(415, 20);
                Fuel       f       = new Fuel(415, 20);



                if (_chance == 0 || _chance == 1 || _chance == 2)
                {
                    obstacleToAdd = ObstacleType.Car;
                }
                else if (_chance == 3 || _chance == 4 || _chance == 5)
                {
                    obstacleToAdd = ObstacleType.Lorry;
                }
                else if (_chance == 6 || _chance == 7 || _chance == 8)
                {
                    obstacleToAdd = ObstacleType.Motorcycle;
                }
                else if (_chance == 9)
                {
                    obstacleToAdd = ObstacleType.Fuel;
                }
                SwinGame.ProcessEvents();
                SwinGame.ClearScreen(Color.White);

                gb.Draw();
                gb.Spawned = false;


                while (gb.Spawned == false)
                {
                    //Fetch the next batch of UI interaction
                    SwinGame.ProcessEvents();

                    //Clear the screen and draw the framerate
                    SwinGame.ClearScreen(Color.White);
                    gb.Draw();

                    if (obstacleToAdd == ObstacleType.Car)
                    {
                        gb.RandomSpawnVehicle(c, s, p);
                    }
                    else if (obstacleToAdd == ObstacleType.Lorry)
                    {
                        gb.RandomSpawnVehicle(l, s, p);
                    }
                    else if (obstacleToAdd == ObstacleType.Motorcycle)
                    {
                        gb.RandomSpawnVehicle(m, s, p);
                    }
                    else if (obstacleToAdd == ObstacleType.Fuel)
                    {
                        gb.RandomSpawnVehicle(f, s, p);
                    }

                    if (SwinGame.KeyTyped(KeyCode.vk_LEFT))
                    {
                        p.NavigateLeft();
                    }
                    else if (SwinGame.KeyTyped(KeyCode.vk_RIGHT))
                    {
                        p.NavigateRight();
                    }
                    p.Draw();

                    SwinGame.DrawText("Score:" + s.Score.ToString(), Color.Black, 10, 100);
                    SwinGame.DrawText("Life:" + s.Life.ToString(), Color.Black, 10, 150);
                    SwinGame.DrawText("Stage:" + s.Stage.ToString(), Color.Black, 10, 200);
                    SwinGame.DrawText("Speed:" + s.Traffic.ToString(), Color.Black, 10, 350);
                    SwinGame.DrawText("Right Arrow key to move right", Color.Black, 10, 250);
                    SwinGame.DrawText("Left Arrow key to move left", Color.Black, 10, 300);
                    SwinGame.DrawFramerate(0, 0);

                    //Draw onto the screen
                    SwinGame.RefreshScreen(60);
                }

                gb.GetScore(s);
                gb.ClearScreen();
                gb.DisplaySpeed(s);
                if (gb.GameOver(s) == true)
                {
//
//					if (SwinGame.KeyTyped (KeyCode.vk_y))
//					{
//						SwinGame.ClearScreen();
//						s.Life = 3;
//						s.Score = 0;
//					}
//					else if (SwinGame.KeyTyped (KeyCode.vk_n))
//					{
//						do
//						{
//							SwinGame.DrawBitmapOnScreen (new Bitmap("thankyou.jpg"), 0, 0);
//							SwinGame.RefreshScreen (60);
//							SwinGame.ReleaseBitmap("thankyou.jpg");
//						} while (false == SwinGame.WindowCloseRequested ());
//					}
//					else
//					{
//							do
//							{
//							SwinGame.DrawBitmapOnScreen(new Bitmap("gameover.jpg"), 0, 0);
//								SwinGame.RefreshScreen (25);
//							SwinGame.ReleaseBitmap("gameover.jpg");
//							} while (false == SwinGame.WindowCloseRequested());
//					}

                    do
                    {
                        SwinGame.ProcessEvents();
                        SwinGame.DrawBitmapOnScreen(new Bitmap("gameover.jpg"), 0, 0);
                        SwinGame.RefreshScreen(60);
                        SwinGame.ReleaseBitmap("gameover.jpg");
                    } while (SwinGame.AnyKeyPressed() == false);
                    //}while (!(SwinGame.KeyTyped (KeyCode.vk_y)) || !(SwinGame.KeyTyped (KeyCode.vk_n)) );

                    if (SwinGame.KeyTyped(KeyCode.vk_y))
                    {
                        s.Life  = 3;
                        s.Score = 0;
                        gb.RestartTimer();
                    }
                    else if (SwinGame.KeyTyped(KeyCode.vk_n))
                    {
                        do
                        {
                            SwinGame.DrawBitmapOnScreen(new Bitmap("thankyou.jpg"), 0, 0);
                            SwinGame.RefreshScreen(60);
                            SwinGame.ReleaseBitmap("thankyou.jpg");
                        } while (false == SwinGame.WindowCloseRequested());
                    }
                }

                SwinGame.DrawFramerate(0, 0);

                //Draw onto the screen
                SwinGame.RefreshScreen(60);
            }
        }