我正在尝试为游戏制作一个关卡系统,却无法弄清楚如何在我的一生中做到这一点。我创建了一个数组,并为其中的每个项目分配了2个参数。我该如何处理第二个参数?
public static int currentLevel = 0;
public static Level levels[] = new Level[100];
int t = 250;
public void initLevels() {
for (int i = 0; i < 100; i++) {
levels[i] = new Level(i, t * i);
}
}
public static void checkXP() {
currentLevel = PlayerData.PlayerLevel;
if(PlayerData.CurrentXP > levels[currentLevel] /*I want to
get the second arg here*/) {
levelUp();
}
}
public static void levelUp() {
PlayerData.PlayerLevel = PlayerData.PlayerLevel + 1;
System.out.println(PlayerData.PlayerLevel);
}
答案 0 :(得分:0)
在程序中,将Level
对象而不是数组存储在levels
数组变量中。对象具有一系列不能由索引(例如数组罐头)直接访问的属性。
例如:
public class Foo {
private int attribute;
public Foo(int attribute) {
this.attribute = attribute;
}
public int getAttribute() {
return attribute;
}
}
在此示例中,类Foo
具有一个属性attribute
。可以通过调用函数getAttribute
来访问它,该函数将允许程序的其他部分访问该对象所包含的数据。
在您的情况下,您需要像已经完成的那样访问levels
数组中的特定对象,然后使用检索属性的函数调用访问Level
对象的属性您需要。
levels[currentLevel].getSecondAttribute()
有关访问对象属性的更多信息,请参见here。
希望这会有所帮助