我正在努力使它在每次说出一个值200之后,它会将全局变量增加1.正如你在下面看到的那样,问题就是那个,它没有任何形状或形式有效,但确实效果不佳。
总体而言,我希望如何使用此功能,以便当 GV.TotalNumberValue 超过某个数字时,假设为200, GV.TotalLevel 将会增加1并更新文本,每当 GV.TotalNumberValue 增加200时,就会发生这种情况。
最后,如果要检查这个数字是什么,我是否应该将此限制为按钮点击或计时器等事件?非常感谢您的帮助,谢谢。
void LevelMod()
{
if (GV.TotalNumberValue >= 200)
{
GV.TotalLevel = GV.TotalLevel + 1;
lblLevel.Text = string.Format("{0}{1}", GV.LevelPrefix, GV.TotalLevel);
}
else if (GV.TotalNumberValue >= 400)
{
GV.TotalLevel = GV.TotalLevel + 1;
lblLevel.Text = string.Format("{0}{1}", GV.LevelPrefix, GV.TotalLevel);
}
else
{
return;
}
}
答案 0 :(得分:4)
好吧,你可以使用简单的数学:
从值中推断出级别,如下所示:
int totalLevel = value / 200;
这是有效的,因为整数除法总是向下舍入。
或者,如果您知道value
刚刚增加,您可以检测到这样的水平边界:
bool shouldLevelUp = (value % 200) == 0;
if (shouldLevelUp)
++totalLevel;
答案 1 :(得分:1)
也许使用类似于:
的整数除法void LevelMod()
{
// I assume the level variables are integrals, so perform an integer division
if (GV.TotalNumberValue / 200 > GV.TotalLevel)
{
GV.TotalLevel = GV.TotalNumberValue / 200;
lblLevel.Text = string.Format("{0}{1}", GV.LevelPrefix, GV.TotalLevel);
}
}
基本上,您的TotalLevel
始终是TotalNumberValue / 200
。这假定GV.TotalNumberValue
是整数类型which always rounds the result towards zero.