//when load level is clicked private void btnLoadLevel_Click(object sender, EventArgs e) { string levelToLoad = txtLevelToLoad.Text + ".txt"; //stores the inputted file name //if the inputted file exists, load the game using that file if (File.Exists(levelToLoad)) { //hide the menu form this.Hide(); //create a new game form form using the inputted file GameForm frmGame = new GameForm(this, levelToLoad); //show game form frmGame.Show(); //resets the score ResetScore(); } else { MessageBox.Show("This file does not exist."); } }
//Draws the scene private void DrawScene(Graphics grfx) { //drawTime++; //Only draw if it is time to update if (timeToUpdate == true) { grfx.DrawImage(background, 0, 0, DisplayRectangle.Width, DisplayRectangle.Height); //increases the drawTime variable by 1 drawTime++; //Reset update status so it will wait for the //next appropriate time to update timeToUpdate = false; //draw the building on to the form building.Draw(grfx); //run a for loop for the windows to draw them as rows for (int column = 0; column < building.Windows.GetLength(0); column++) { //run a for loop for the windows to draw them as columns for (int row = 0; row < building.Windows.GetLength(1); row++) { //draw in the windows on to the building building.Windows[column, row].Draw(grfx); } } //mario is on the 6th frame of the animation or the 12th frame of animation if (mario.CurrentFrameIndex == 6 || mario.CurrentFrameIndex == 12) { //set mario's width to 55 pixals mario.Width = 55; //set mario's height to 60 pixals mario.Height = 60; } //if mario's frame of animation is the 13th one else if (mario.CurrentFrameIndex == 13) { //set marios width to 20 pixals mario.Width = 20; //set mario's height to 20 pixals as well mario.Height = 20; } //else wise for any other frame else { //set mario's width to 25 pixals mario.Width = 25; //set mario's height to 60 pixals mario.Height = 60; } //draw mario on the screen mario.Draw(grfx); //if draw time is up to 5 if (drawTime == 5) { //then bowser will be drawn bowser.Draw(grfx); //run an index for loop for the drawing of the birds for (int index = 0; index < birds.Length; index++) { //draw each index of the birds in its array birds[index].Draw(grfx); } //set draw time back to 0 drawTime = 0; } //else else { //draw bowser without moving it to its next frame of animation bowser.Draw(grfx, false); //run a index for loop for all the birds for (int index = 0; index < birds.Length; index++) { //draws the bird without moving it to its next frame of animation birds[index].Draw(grfx,false); } } //run an index for loop for the fireballs for (int index = 0; index < fireballs.Length; index++) { //draws the fireball fireballs[index].Draw(grfx); } //run a index for loop to draw the walls on to the game form for (int index = 0; index < walls.Length; index++) { //draw each of the walls walls[index].Draw(grfx); } //if mushrooms can be displayed on the screen if (displayMushrooms == true) { //run a index for loops for the mushrooms for (int index = 0; index < mushrooms.Length; index++) { //draw mushroom of all index mushrooms[index].Draw(grfx); } } //run a index for loop for the lives and draw them onto the form for (int index = 0; index < lives.Length; index++) { //draw each index of the lives lives[index].Draw(grfx); } } //if mario has no more lives if (mario.Lives == 0) { //the game is over gameOver = true; //and mario will fall down the building mario.Y += 20; } //if all the windows on the building have been fixed if (CountNumFixedWindows(building.Windows) == building.Windows.Length) { //the game is over gameOver = true; //and bowser has not been shot from the canon yet if (shotOnce == false) { //shoot bowser from the conon using the animation subprogram bowser.ShootFromCanon(); //and set browser to has been shot shotOnce = true; } //if bowser is animated to fly if (bowser.CurrentFrameIndex == 6) { //launch him across the screen bowser.X -= 20; } } //if the game is over if (gameOver == true) { //remove all the fireballs from the screen fireballs = new Fireball[0]; //remove all the mushrooms from the screen mushrooms = new Mushroom[0]; //remove all the birds from the screen birds = new Bird[0]; } //If mario has fallen below the screen (aka he is dead) if (mario.Y > DisplayRectangle.Height) { //add the score to the highscore form (which will be determined if it is kept or not by the highschore form) HighScoreForm frmHighScore = new HighScoreForm(currentScore); //goes to the menu GoToMenu(); } //after bowser leaves the screen after being lanuched if (bowser.X < 0) { //increase the diffculty of the frame rate difficultyTime -= 5; //if the diffuclty time is already below 5 if (difficultyTime < 5) { //set it 5 difficultyTime = 5; } //increase the number of birds by one numBirds++; //increase the speed of the birds birdSpeed += 5; //If the level that is being played is part of the main (infinite) game... if (levelToPlay == "infiniteGame.txt") { //using streamwriter add the diffculity to its text file respectfully so it can be used //by the game to set the properties of the game using (StreamWriter sw = new StreamWriter(levelToPlay, false)) { //write to the first line the difficulty of frame rate sw.WriteLine(difficultyTime.ToString()); //to the next line write the number of walls sw.WriteLine(numWalls.ToString()); //to the next line write the number of mushrooms sw.WriteLine(numMushrooms.ToString()); //to the next lne write the number of birds sw.WriteLine(numBirds.ToString()); //to the next time write the speed of the birds sw.WriteLine(birdSpeed.ToString()); } //to save the current score as the gameform changes write it to the current text file //which is overwritable using (StreamWriter sw = new StreamWriter("currentScore.txt", false)) { //write on the first line sw.WriteLine(currentScore.ToString()); } //go to menu GoToMenu(); //create a new game form GameForm frmGame = new GameForm(frmMenu, levelToPlay); //and show it has the next level frmGame.Show(); } //If the level being played is not part of the main(infinite) game else { GoToMenu(); //go to the menu } } }
//when the start game button on the menu is clicked and the game form is loaded... private void btnStartGame_Click(object sender, EventArgs e) { //set diffculty of time via framerate as an interval of 80 int difficultyTime = 80; //set the number of birds as 1 int numBirds = 1; //set the bird speed in terms of framerate as an interval of 5 int birdSpeed = 5; //set the number of pwr up mushrooms to 2 int numMushrooms = 2; //set the number of obstucle walls to stop mario to 2 int numWalls = 2; //create array to hold the corriates of the obstcule walls int[,] wallCoords = new int[2, 2]; //add the wall cordinates to the array wallCoords[0, 0] = 2; wallCoords[1, 0] = 3; wallCoords[0, 1] = 1; wallCoords[1, 1] = 4; //using the streamwriter properties from the IO to write onto the difficulty //text file and allow for overwriting using (StreamWriter sw = new StreamWriter("infiniteGame.txt", false)) { //print to the 1st line. the diffculty in terms of time sw.WriteLine(difficultyTime.ToString()); //print to the 2nd line the number of walls on the gameform sw.WriteLine(numWalls.ToString()); //print to the 3rd line the number of mushrooms sw.WriteLine(numMushrooms.ToString()); //print to the 4th line the number of bird on the gameform sw.WriteLine(numBirds.ToString()); //print to the 5th line the speed of the birds sw.WriteLine(birdSpeed.ToString()); } //resets the score ResetScore(); //hide the menu form before loading the game form this.Hide(); //create a game form GameForm frmGame = new GameForm(this, "infiniteGame.txt"); //show the game form to the user frmGame.Show(); }