我如何能够从标签中减去一定的数量
本文关键字:何能够 标签 | 更新日期: 2023-09-27 18:08:31
private void battleButton_Click(object sender, EventArgs e)
{
if (battleDropBox.SelectedItem.ToString() == "Rat")
{
enemyHP.Text = "Enemy HP: " + rat.HP.ToString();
enemyDPS.Text = "Enemy DPS: " + rat.Damage.ToString();
timer.Tick += new EventHandler(timer1_Tick);
timer.Interval = 1000;
timer.Start();
}
}
private void timer1_Tick(object sender, EventArgs e)
{
dealDamage();
}
public void dealDamage()
{
rat.HP--;
enemyHP.Text = "Enemy HP: " + rat.HP.ToString();
}
我:
rat.HP--;
enemyHP.Text = "Enemy HP: " + rat.HP.ToString();
但是我怎样才能使它减去一个变化的量
重载方法:
public void dealDamage(int damage)
{
rat.HP -= damage;
enemyHP.Text = "Enemy HP: " + rat.HP.ToString();
}
这样,您可以调用dealDamage()
(不带参数)并将HP
递减1,或者您可以调用dealDamage(yourValue)
来将HP
递减一个可变的量(即dealDamage(15)
来将HP
递减15)。
void dealRandomDamage(int bottomLimit, int upperLimit)
{
dealDamage((new Random()).Next(bottomLimit, upperLimit));
}
然后在你的tick处理器中,你可以这样做:
private void timer1_Tick(object sender, EventArgs e)
{
dealRandomDamage(1, 10);
}
从1到10之间的任意值随机递减。
EDIT: Adam提出了一个很好的观点。如果您确实采用这种方法,那么将dealDamage()
函数定义更改为以下内容将是一个好主意:
public void dealDamage()
{
dealDamage(1);
}
这将消除导致损坏的代码的冗余和重复(没有双关语)。这样,如果你改变了的逻辑,如何处理的损害,那么它只需要对逻辑进行一次更改。