студент-программист, совершенно новый для меня вопрос, но я уверен, что вы, люди, узнаете. Я должен сделать игру, в которой несколько картинных боксов создаются с использованием массива. Я также должен создать класс, у которого переменная работоспособности равна 5. Когда вы щелкаете мышью по одному из полей с картинками, его здоровье должно снизиться на 1. Я так далеко, но проблема в том, что переменная здоровья является общей всеми картинками, где на самом деле я хочу, чтобы каждая коробка имела свое здоровье.
Это мой код:
public partial class Form1 : Form
{
Invader monster; // Invader is the name of the class
Random rand = new Random();
PictureBox[] pb = new PictureBox[5];
private void Spawner()
{
for (int i = 0; i < 5; i++)
{
this.monster = new Invader();
this.pb[i] = new PictureBox();
this.pb[i].Name = "pb" + i.ToString();
this.pb[i].Location = new Point(rand.Next(10, 300), monster.LocY);
this.pb[i].BackgroundImageLayout = ImageLayout.Stretch;
this.pb[i].BackgroundImage = Image.FromFile(@"Path");
this.pb[i].BackColor = Color.Transparent;
this.pb[i].Size = new System.Drawing.Size(40, 30);
this.Controls.Add(this.pb[i]);
this.pb[i].Click += this.Form1_Click;
}
}
private void Form1_Click(object sender, EventArgs e)
{
PictureBox currentpicturebox = (PictureBox)sender;
this.monster.HealthDown();
if (this.monster.Health == 0)
{
currentpicturebox.Dispose();
}
}
и мой класс:
class Invader
{
// Fields
private int health;
// Properties
public int Health
{
get { return this.health; }
}
// Constructor
public Invader()
{
this.health = 5;
}
// Methods
public void HealthDown()
{
this.health -= 1;
}
Допустим, я щелкаю 1 графическое окно 4 раза, а другой - 1 раз. С этим кодом будет удалено последнее нажатие на картинку. Есть идеи как это исправить?