Игра танчики. Добавить завершение игры. - C#
Формулировка задачи:
Создаю танчики,нету уже сил. Не могу создать чтобы при попадании пули в танк выбило текст конец игры. Вот код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace WindowsFormsApplication1
{
public partial class screen : Form
{
const int quantityMenuButtons = 2;
Button[] menuButtons = new Button[quantityMenuButtons];
public screen()
{
InitializeComponent();
Пуля_Игрок1.Пуля_Image = WindowsFormsApplication1.Properties.Resources.bullet1;
Пуля_Игрок2.Пуля_Image = WindowsFormsApplication1.Properties.Resources.bullet2;
Игрок1.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank1_Up;
Игрок2.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank2_Up;
Меню_();
}
//класс для удобства работы с координатами яблока и сегментов змеи
меню Меню = new меню();
игрок Игрок1 = new игрок();
игрок Игрок2 = new игрок();
пуля Пуля_Игрок1 = new пуля();
пуля Пуля_Игрок2 = new пуля();
private void Button1_Click(object sender, EventArgs e) // кнопка "старт"
{
BackgroundImage = null;
panel1.Visible = true;
gameover_text.Left = (panel1.Width / 2) - (gameover_text.Width / 2); // Позиція в центрі
gameover_text.Top = (panel1.Height / 2) - (gameover_text.Width / 2);
gameover_text.Visible = false;
Игрок1_PicBox.Visible = true;
if (timer1.Enabled)
MessageBox.Show("Таймер работает");
else MessageBox.Show("Таймер не работает");
this.KeyDown += new KeyEventHandler(panzer_KeyDown);
this.KeyUp += new KeyEventHandler(panzer_KeyUp);
for (int i = 0; i < menuButtons.Length; i++)
this.Controls.Remove(menuButtons[i]);
}
#region Нажатия клавиш а окне
void panzer_KeyDown(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
// клавиши для Игрок1
case Keys.Up: { Игрок1.Ор = Ориентация.вверх; Игрок1.движется = true; Игрок1.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank1_Up; break; }
case Keys.Down: { Игрок1.Ор = Ориентация.вниз; Игрок1.движется = true; Игрок1.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank1_Down; break; }
case Keys.Left: { Игрок1.Ор = Ориентация.влево; Игрок1.движется = true; Игрок1.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank1_Left; break; }
case Keys.Right: { Игрок1.Ор = Ориентация.вправо; Игрок1.движется = true; Игрок1.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank1_Right; break; }
case Keys.NumPad0:
{
if (Пуля_Игрок1.выстрел == false)
{
if (Игрок1.Ор == Ориентация.вверх) { Пуля_Игрок1.Location.X = Игрок1.Location.X + 13; Пуля_Игрок1.Location.Y = Игрок1.Location.Y - 7; }
if (Игрок1.Ор == Ориентация.вниз) { Пуля_Игрок1.Location.X = Игрок1.Location.X + 13; Пуля_Игрок1.Location.Y = Игрок1.Location.Y + 33; }
if (Игрок1.Ор == Ориентация.влево) { Пуля_Игрок1.Location.X = Игрок1.Location.X - 7; Пуля_Игрок1.Location.Y = Игрок1.Location.Y + 13; }
if (Игрок1.Ор == Ориентация.вправо) { Пуля_Игрок1.Location.X = Игрок1.Location.X + 33; Пуля_Игрок1.Location.Y = Игрок1.Location.Y + 13; }
if (Игрок1.Ор == Ориентация.вверх) Пуля_Игрок1.Ор = Ориентация.вверх;
if (Игрок1.Ор == Ориентация.вниз) Пуля_Игрок1.Ор = Ориентация.вниз;
if (Игрок1.Ор == Ориентация.влево) Пуля_Игрок1.Ор = Ориентация.влево;
if (Игрок1.Ор == Ориентация.вправо) Пуля_Игрок1.Ор = Ориентация.вправо;
ПуляИгрок1_PicBox.Show();
Пуля_Игрок1.выстрел = true;
}
break;
}
// клавиши для Игрок2
case Keys.W: { Игрок2.Ор = Ориентация.вверх; Игрок2.движется = true; Игрок2.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank2_Up; break; }
case Keys.S: { Игрок2.Ор = Ориентация.вниз; Игрок2.движется = true; Игрок2.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank2_Down; break; }
case Keys.A: { Игрок2.Ор = Ориентация.влево; Игрок2.движется = true; Игрок2.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank2_Left; break; }
case Keys.D: { Игрок2.Ор = Ориентация.вправо; Игрок2.движется = true; Игрок2.Игрок_Image = WindowsFormsApplication1.Properties.Resources.tank2_Right; break; }
case Keys.Space:
{
if (Пуля_Игрок2.выстрел == false)
{
if (Игрок2.Ор == Ориентация.вверх) { Пуля_Игрок2.Location.X = Игрок2.Location.X + 13; Пуля_Игрок2.Location.Y = Игрок2.Location.Y - 7; }
if (Игрок2.Ор == Ориентация.вниз) { Пуля_Игрок2.Location.X = Игрок2.Location.X + 13; Пуля_Игрок2.Location.Y = Игрок2.Location.Y + 33; }
if (Игрок2.Ор == Ориентация.влево) { Пуля_Игрок2.Location.X = Игрок2.Location.X - 7; Пуля_Игрок2.Location.Y = Игрок2.Location.Y + 13; }
if (Игрок2.Ор == Ориентация.вправо) { Пуля_Игрок2.Location.X = Игрок2.Location.X + 33; Пуля_Игрок2.Location.Y = Игрок2.Location.Y + 13; }
if (Игрок2.Ор == Ориентация.вверх) Пуля_Игрок2.Ор = Ориентация.вверх;
if (Игрок2.Ор == Ориентация.вниз) Пуля_Игрок2.Ор = Ориентация.вниз;
if (Игрок2.Ор == Ориентация.влево) Пуля_Игрок2.Ор = Ориентация.влево;
if (Игрок2.Ор == Ориентация.вправо) Пуля_Игрок2.Ор = Ориентация.вправо;
ПуляИгрок2_PicBox.Show();
Пуля_Игрок2.выстрел = true;
}
break;
}
}
}
void panzer_KeyUp(object sender, KeyEventArgs e)
{
switch (e.KeyCode)
{
// клавиши для Игрок1
case Keys.Up: { Игрок1.движется = false; break; }
case Keys.Down: { Игрок1.движется = false; break; }
case Keys.Left: { Игрок1.движется = false; break; }
case Keys.Right: { Игрок1.движется = false; break; }
// клавиши для Игрок2
case Keys.W: { Игрок2.движется = false; break; }
case Keys.S: { Игрок2.движется = false; break; }
case Keys.A: { Игрок2.движется = false; break; }
case Keys.D: { Игрок2.движется = false; break; }
}
if (e.KeyCode == Keys.Escape) { this.Close(); } // Нажміть Esc для виходу
if (e.KeyCode == Keys.R) // Перезапустити гру
{
}
}
#endregion
private void Button2_Click(object sender, EventArgs e) // кнопка "выход"
{
Application.Exit();
}
public void Меню_() // вывод меню
{
panel1.Visible = false;
string[] buttText = new string[2] { "Старт", "Выход" };
EventHandler[] handlers = new EventHandler[2] { new EventHandler(Button1_Click), new EventHandler(Button2_Click) };
int buttonNumber = 0;
int Y = 50;
BackgroundImage = Меню.ФоноваяКартинкаМеню;
do
{
Button but = new Button();
but.Name = "button" + buttonNumber.ToString();
but.ClientSize = new Size(150, 50);
but.Location = new Point(600, Y);
but.Text = buttText[buttonNumber];
but.Click += handlers[buttonNumber];
but.BackColor = Color.AliceBlue;
this.Controls.Add(but);
menuButtons[buttonNumber] = but;
buttonNumber++;
Y += 50;
} while (buttonNumber != quantityMenuButtons);
}
private void timer1_Tick(object sender, EventArgs e) // таймер
{
Игрок1.Location.X = Игрок1_PicBox.Location.X;
Игрок1.Location.Y = Игрок1_PicBox.Location.Y;
Игрок2.Location.X = Игрок2_PicBox.Location.X;
Игрок2.Location.Y = Игрок2_PicBox.Location.Y;
Игрок1.Движение();
Игрок2.Движение();
Пуля_Игрок1.Движение();
Пуля_Игрок2.Движение();
Игрок1_PicBox.Image = Игрок1.Игрок_Image;
Игрок2_PicBox.Image = Игрок2.Игрок_Image;
ПуляИгрок1_PicBox.Image = Пуля_Игрок1.Пуля_Image;
ПуляИгрок2_PicBox.Image = Пуля_Игрок2.Пуля_Image;
Игрок1_PicBox.Location = new Point(Игрок1.Location.X, Игрок1.Location.Y);
Игрок2_PicBox.Location = new Point(Игрок2.Location.X, Игрок2.Location.Y);
ПуляИгрок1_PicBox.Location = new Point(Пуля_Игрок1.Location.X, Пуля_Игрок1.Location.Y);
ПуляИгрок2_PicBox.Location = new Point(Пуля_Игрок2.Location.X, Пуля_Игрок2.Location.Y);
if (Пуля_Игрок1.выстрел == false) ПуляИгрок1_PicBox.Hide();
if (Пуля_Игрок2.выстрел == false) ПуляИгрок2_PicBox.Hide();
}
}
}Решение задачи: «Игра танчики. Добавить завершение игры.»
textual
Листинг программы
Form1.Restart(); // Перезагружает форму this.Form2.Hide();