我正在使用Java制作游戏。我是初学程序员。这是一款类似游戏的幻想RPG游戏。游戏即将到来,我即将进行库存系统。有店主,这些业主将有限的库存。我还在学习内存管理和消费,所以我的问题如下。
如果劳雷尔是店主,那么追踪劳雷尔10种药水的最有效方式就是
static int laurelInventory = 10;
然后当Hero购买药水时,它就是:
laurelInventory = laurelInventory - qtyPurchased;
我想要了解的是,我会经常使用静态遇到麻烦,或者有更好的方法来存储运行计数和总计。这使我对我来说更加清洁,而不是担心我创建和管理该实例的实例。
对于内存管理的任何其他反刍,也是+1
答案 0 :(得分:3)
使用Java和其他面向对象的语言,您希望为各种"事物创建对象。在您的域中。因此,您可能拥有一个包含实例的Store类,而不是静态变量。 E.g。
public class Store {
// In real life, probably per-item, but keeping it simple here.
private int inventoryLevel;
public int getInventoryLevel() { return inventoryLevel; }
public void setInventoryLevel(int level) {
this.inventoryLevel = level;
}
public void increaseInventoryLevelBy(int amount) {
this.inventoryLevel += amount;
}
public void decreaseInventoryLevelBy(int amount) {
this.inventoryLevel -= amount;
}
}
然后设置商店:
Store laurelStore = new Store();
laurelStore.setInventoryLevel(500);
当有人想买东西时:
laurelStore.decreaseInventoryLevelBy(numPurchased);
等
有充分的理由以这种方式做事(而不是使用静态变量),但这是一个很大的讨论,因此您会发现阅读面向对象编程以理解这些原因很有用。祝好运。兄弟。
答案 1 :(得分:0)
创建一个ShopOwner类,它将具有包含IncrementInventory和DecrementInventory操作的stock变量。然后,您可以将该类设置为月桂树。但是,我建议你阅读有关面向对象的软件设计。看看设计模式。