【发布时间】:2014-07-05 22:05:04
【问题描述】:
我是 c# 中的大新手,但我一直坚持一件烦人的事情。首先这是我遇到问题的代码:
private void Refresher_Tick(object sender, EventArgs e)
{
LabelInf.Text = "Infected : " + Vars.infected; // Infected
ZAmount.Text = "Zombies : " + Vars.zombies; // Zombies
ZCost.Text = "Cost : " + Costs.ZombieCost; // Next Zombie Cost
}
}
还有:
class Costs
{
internal static double ZombieCost = (Math.Floor(10 * Math.Pow(1.25, Vars.zombies)));
}
最后:
public static void ZombieBuy()
{
if (Vars.infected >= Costs.ZombieCost) {
Vars.zombies = Vars.zombies + 1;
Vars.infected = Vars.infected - Costs.ZombieCost;
}
else
{
MessageBox.Show("Not Enough Infected To Sacrifice !","Insufficient Infected");
return;
}
}
我想要做的是,当我购买僵尸时,新成本显示在我的标签 (ZCost) 中,一切正常,但成本却没有,这真的很奇怪。新的僵尸成本在 Costs 类中计算,ZombieBuy() 在 Actions 类中,然后由我的主窗体中的按钮触发。
【问题讨论】:
-
什么不起作用?当您在调试器中单步执行此操作时,它与您的预期有何不同?
-
当我运行它时,当我购买僵尸时 数学计算旨在使僵尸的价格增加 1.25(第二个代码片段),但它没有。价格保持在 10 不变。在 The First Code Snip 中,ZCost 的代码都很好,我检查了所有地方尝试了所有方法,但购买僵尸后价格仍然没有变化。