我如何设置在我的单人游戏中收集金币的限制?
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;
}
}
我想在我的 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;
}
}