我想限制我的C#单机游戏中的Goldmine。我希望有10个金币,在收集它们之后有新的金币。每5秒2新金。这在我的代码中很完美。但是现在我希望等待黄金之后有限制。如果玩家等待很长时间,他只能获得10金。 但是限制不起作用。 有什么想法吗?
这是我的代码:
public static void CollectGold(ObjectFactory.ObjectType type)
{
if(MaxGoldLimit <=10)
{
if (sMaxGold > 0)
{
Hud.mGold += 2;
sMaxGold -= 2;
}
if (Hud.mCurrentTime >= Hud.mCountDuration)
{
Counter++;
Hud.mCurrentTime -= Hud.mCountDuration
if (sMaxGold < 10)
{
sMaxGold += 2;
}
if (sMaxGold >= 10)
{
sMaxGold -= 2; // or sMaxGold = 10 in earlier version-> same output
}
}
}
}
sMaxGold是我的极限。这永远不会超过10。但是每5秒钟我就会获得2新金。因此限制不起作用。 有没有人可以帮助我?
编辑:
我在对象工厂中构建对象。
case ObjectFactory.ObjectType.GoldVein:
mActiveButtons.Add(ObjectFactory.ObjectType.GoldVein.ToString());
mButtons[ObjectFactory.ObjectType.GoldVein.ToString()].SetLocation(one);
mButtons[ObjectFactory.ObjectType.GoldVein.ToString()].mAction =
GoldVein.CollectGold;
mButtons[ObjectFactory.ObjectType.GoldVein.ToString()].UpdateText("Collect");
MAXGoldLimit= 10;
break;
这就是我与对象管理器绘制地雷的方式:
CreateObject(ObjectFactory.ObjectType.GoldVein, new Point(TileSize * 26, TileSize * 8);
CreateObject(ObjectFactory.ObjectType.GoldVein, new Point(TileSize * 30, TileSize * 8);
答案 0 :(得分:4)
尝试在声明中添加其他
public static void CollectGold(ObjectFactory.ObjectType type)
{
if (Hud.mCurrentTime >= Hud.mCountDuration)
{
Counter++;
Hud.mCurrentTime -= Hud.mCountDuration
if (sMaxGold < 10)
{
sMaxGold += 2;
}
if (sMaxGold >= 10)
{
sMaxGold -= 2; // or sMaxGold = 10 in earlier version-> same output
}
}
else if (sMaxGold > 0)
{
Hud.mGold += 2;
sMaxGold -= 2;
}
}