// Create new arrow/fireball public void newArrowProjectile(Point p, float angle) { TransparentPictureBox newArrow = new TransparentPictureBox(arrow.getZOrder()); newArrow.Image = arrow.Image; newArrow.rotateTo(angle); newArrow.SetBounds((int)p.getX(), (int)p.getY(), arrow.Width, arrow.Height); arrowList.Add(newArrow); gamePanel.Controls.Add(newArrow); newArrow.BringToFront(); }
public void newFireball(Point p, float angle) { TransparentPictureBox newFireball = new TransparentPictureBox(fireball.getZOrder()); newFireball.Image = fireball.Image; newFireball.rotateTo(angle); newFireball.SetBounds((int)p.getX(), (int)p.getY(), fireball.Width, fireball.Height); fireballList.Add(newFireball); gamePanel.Controls.Add(newFireball); newFireball.BringToFront(); }
/////////////////////////////////////////////////////// Constructor /////////////////////////////////////////////////////// public WumpusUI(Form gameForm, TransparentPictureBox player, TransparentPictureBox[] bats, TransparentPictureBox[] pits, TransparentPictureBox[] rocks, TransparentPictureBox wumpus, TransparentPictureBox room, TransparentPictureBox gold, TransparentPictureBox arrow, TransparentPictureBox fireball, TransparentPictureBox secret, TransparentPictureBox win, TransparentPictureBox lose, TransparentPictureBox main, TransparentPictureBox chest, TransparentPictureBox door, TextBox alertBox, Rectangle screen, DrawingPanel gamePanel) { main.Location = new System.Drawing.Point(-10000, -10000); mainBackground = main.Image; gameForm.BackgroundImage = main.Image; sound.playSound1(); this.gameForm = gameForm; hs = new HighScore(); // Get screen dimensions - used for scaling and GC creation this.screen = screen; scX = Screen.FromControl(gameForm).Bounds.Width; scY = Screen.FromControl(gameForm).Bounds.Height; #region Main Menu construction playGameButton = new Button(); playGameButton.Text = "Play Game"; playGameButton.Size = new Size(scX / 10, scX / 40); playGameButton.Location = new System.Drawing.Point((scX - playGameButton.Width) / 2, scY * 23 / 34); // playGameButton = makeButton("play game", (scX - scX / 10) / 2, scY * 14 / 22); highScoreButton = new Button(); highScoreButton.Text = "Highscores"; highScoreButton.Size = playGameButton.Size; highScoreButton.Location = new System.Drawing.Point((scX - highScoreButton.Width) / 2, scY * 25 / 34); // highScoreButton = makeButton("highscores", (scX - scX / 10) / 2, scY * 15 / 22); helpButton = new Button(); helpButton.Text = "Help and Credits"; helpButton.Size = playGameButton.Size; helpButton.Location = new System.Drawing.Point((scX - helpButton.Width) / 2, scY * 27 / 34); // helpButton = makeButton("help and credits", (scX - scX / 10) / 2, scY * 16 / 22); // helpButton.AutoSize = true; exitGameButton = new Button(); exitGameButton.Text = "Exit Game"; exitGameButton.Size = playGameButton.Size; exitGameButton.Location = new System.Drawing.Point((scX - exitGameButton.Width) / 2, scY * 29 / 34); // exitGameButton = makeButton("exit", (scX - scX / 10) / 2, scY * 17 / 22); playGameButton.Click += new System.EventHandler(playGameButton_Click); highScoreButton.Click += new System.EventHandler(highScoreButton_Click); helpButton.Click += new System.EventHandler(helpButton_Click); exitGameButton.Click += new System.EventHandler(exitGameButton_Click); gameForm.Controls.Add(playGameButton); gameForm.Controls.Add(highScoreButton); gameForm.Controls.Add(helpButton); gameForm.Controls.Add(exitGameButton); // Help Form helpForm = makeForm("Help and Credits", 640, 370); helpForm.StartPosition = FormStartPosition.Manual; helpForm.Location = new System.Drawing.Point((scX - helpForm.Width) / 2, (scY - helpForm.Height) / 2); // HighScore Form highScoreForm = makeForm("High-scores", scX / 3, scY * 3 / 4); highScoreForm.StartPosition = FormStartPosition.Manual; highScoreForm.Location = new System.Drawing.Point((scX - highScoreForm.Width) / 2 + 150, (scY - highScoreForm.Height) / 2); playerNames = new Label[10]; highScores = new Label[10]; exitHighScore = makeButton("Exit", highScoreForm.Width * 4 / 6, highScoreForm.Height * 7 / 8); exitHighScore.Click += ExitHighScore_Click; highScoreForm.Controls.Add(exitHighScore); // Submit Name Form submitNameForm = makeForm("Enter Name: ", scX / 5, scY / 6); submitNameForm.StartPosition = FormStartPosition.Manual; submitNameForm.Location = new System.Drawing.Point((scX - submitNameForm.Width) / 2, (scY - submitNameForm.Height) / 2); nameBox = makeTextBox(submitNameForm.Width * 5 / 7, submitNameForm.Height / 4, submitNameForm.Width * 1 / 7, submitNameForm.Height / 7); submitNameButton = makeButton("This is me!", submitNameForm.Width * 3 / 5, submitNameForm.Height * 3 / 7); submitNameButton.Click += SubmitNameButton_Click; submitNameForm.AcceptButton = submitNameButton; submitNameForm.Controls.Add(nameBox); submitNameForm.Controls.Add(submitNameButton); // Select Cave Form selectCaveForm = makeForm("Choose a Cave: ", scX / 6, scY / 3); selectCaveForm.StartPosition = FormStartPosition.Manual; selectCaveForm.Location = new System.Drawing.Point((scX - selectCaveForm.Width) / 2, (scY - selectCaveForm.Height) / 2); Button[] caves = new Button[5]; for (int i = 1; i <= 5; i++) { caves[i - 1] = makeButton("Cave " + i, selectCaveForm.Width / 3, selectCaveForm.Height * i / 7); selectCaveForm.AcceptButton = caves[i - 1]; } caves[0].Click += new System.EventHandler(this.cave1_Click); caves[1].Click += new System.EventHandler(this.cave2_Click); caves[2].Click += new System.EventHandler(this.cave3_Click); caves[3].Click += new System.EventHandler(this.cave4_Click); caves[4].Click += new System.EventHandler(this.cave5_Click); selectCaveForm.Controls.AddRange(caves); selectCaveForm.FormClosing += SelectCaveForm_FormClosing; #endregion #region Shop Form shopForm = makeForm("Shop", scX / 5, scY * 1 / 2); shopForm.StartPosition = FormStartPosition.Manual; shopForm.BackgroundImage = shopBackground; shopForm.Width = shopBackground.Width + 20; shopForm.Height = shopBackground.Height + 30; shopForm.Location = new System.Drawing.Point((scX - shopForm.Width) / 2, (scY - shopForm.Height) / 2); // buyArrow Button buyArrow = makeButton("Buy", shopForm.Width * 3 / 5, shopForm.Height * 25 / 42); buyArrow.Click += new System.EventHandler(buyArrow_Click); // buySecret Button buySecret = makeButton("Buy", shopForm.Width * 3 / 5, shopForm.Height * 2 / 7); buySecret.Click += new System.EventHandler(buySecret_Click); // exitShop Button exitShop = makeButton("Exit", shopForm.Width * 3 / 5, shopForm.Height * 4 / 5); exitShop.Click += new System.EventHandler(exitShop_Click); shopForm.Controls.Add(buyArrow); shopForm.Controls.Add(buySecret); shopForm.Controls.Add(exitShop); #endregion #region GUI Construction // Image construction this.player = player; this.wumpus = wumpus; this.room = room; this.chest = chest; this.gold = gold; this.arrow = arrow; this.secret = secret; this.fireball = fireball; this.door = door; // Image array construction this.door = door; this.bats = bats; this.pits = pits; this.rocks = rocks; // Projectile image list - images copied from the template picturebox arrowList = new List <TransparentPictureBox>(); fireballList = new List <TransparentPictureBox>(); // Initial image locations player.Location = new System.Drawing.Point(scX / 2, scY / 2); this.gold.Location = new System.Drawing.Point(scX * 1 / 10, scY * 7 / 9); this.arrow.Location = new System.Drawing.Point(scX * 3 / 10, scY * 7 / 9); this.fireball.Location = new System.Drawing.Point(scX * 4 / 3, scY * 4 / 3); // Set door location door.Location = new System.Drawing.Point(-1000, -1000); doors = new TransparentPictureBox[6]; for (int i = 0; i < doors.Length; i++) { TransparentPictureBox newDoor = new TransparentPictureBox(door.getZOrder()); newDoor.Image = door.Image; gamePanel.Controls.Add(newDoor); doors[i] = newDoor; doors[i].Location = new System.Drawing.Point(-1000, -1000); } #region Player HUD // Shop button shopButton = makeButton("Shop", scX * 1 / 30, scY * 4 / 5); shopButton.Click += new System.EventHandler(shopButton_Click); // Items gold.Location = new System.Drawing.Point(scX * 1 / 30, scY * 17 / 20); arrow.Location = new System.Drawing.Point(scX * 3 / 30, scY * 8 / 10); golds = makeLabel("0", scX * 2 / 30, scY * 7 / 8); golds.AutoSize = true; arrows = makeLabel("0", scX * 4 / 30, scY * 7 / 8); arrows.AutoSize = true; // Alerts this.alertBox = alertBox; alertBox.Location = new System.Drawing.Point(scX - alertBox.Width, 1 / 80); #endregion #endregion #region Game Panel - Draw images here! // Game panel displays game images this.gamePanel = gamePanel; gamePanel.Size = new Size(0, 0); gamePanel.Controls.Add(shopButton); gamePanel.Controls.Add(golds); gamePanel.Controls.Add(arrows); shopButton.BackColor = Color.White; golds.BackColor = Color.White; arrows.BackColor = Color.White; gamePanel.BackColor = Color.Black; gameForm.BackColor = Color.White; #endregion #region Endgame this.win = win; this.lose = lose; win.Location = new System.Drawing.Point(0, 0); lose.Location = new System.Drawing.Point(0, 0); // Keep hidden until game ends win.Hide(); lose.Hide(); // show button that takes the user to main menu mainMenu = makeButton("Main Menu", scX / 2, scY * 7 / 8); mainMenu.AutoSize = true; gameForm.Controls.Add(mainMenu); mainMenu.Click += MainMenu_Click; mainMenu.Hide(); #endregion }