我正在编写C#单人游戏。我添加了两个高明胺,以便玩家可以收集金币。我希望每个地雷都有限制。您收集的金币不能超过50。我实现了一个对象工厂来获取地雷:
case ObjectFactory.ObjectType.GoldVein:
mActiveButtons.Add(ObjectFactory.ObjectType.GoldVein.ToString());
if (GoldStock >= 0)
{
mButtons[ObjectFactory.ObjectType.GoldVein.ToString()].SetLocation(two);
mButtons[ObjectFactory.ObjectType.GoldVein.ToString()].mAction = GoldVein.CollectGold;
buttons[ObjectFactory.ObjectType.GoldVein.ToString()].UpdateText("Collect");
}
break;
[GoldStock是我的golmine限制。当没有更多的GoldStock时,玩家将无法再收集黄金。
这是我的CollectGold方法:
public static void CollectGold(ObjectFactory.ObjectType type)
{
Hud.mGold += 10;
Hud.GoldStock -= 2;
}
mGold是玩家的黄金供应。我想要的是,每一个高尔基都有自己的GoldStock。玩家应该在每个地雷中获得50金币。现在,地雷正在共同努力。这两个矿共有50金。我该如何分开呢?有什么想法吗?
您必须保留单独的金矿实例,并且不要通过static
变量共享金矿。
一个简单的(控制台)示例为:
class Program
{
static void Main(string[] args)
{
var goldMine1 = new GoldMine() { Gold = 50 };
var goldMine2 = new GoldMine() { Gold = 50 };
}
}
class GoldMine
{
public int Gold { get; set; }
}
每个这些矿山都有自己的金币,您可以分别从中取出。