我如何设置在我的单人游戏中收集金币的限制?

How I can set a limit for collecting gold in my monogame?

我想在我的 C# 单游戏中限制我的金矿。我想要有 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);

尝试在语句

中添加Else
 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;
  }

 }