如何将数组放入" if"声明?

时间:2015-04-23 09:41:30

标签: arrays if-statement arraylist processing removeclass

我制作了一个简单的游戏,其中阵列中的一堆对象同时出现。按下鼠标将删除类中的对象数组(下面的示例代码)。当它命中0时,希望它进入另一个游戏状态。我还是很陌生......

void mousePressed() {

if (gameState == RUN_GAME) {
objects.remove(0);
}
}

当它达到0并且草图中没有更多对象并且您按下鼠标时,处理会自动冻结。我尝试过这样的事情(如下),但显然不起作用。一旦对象的数组列表达到0,我怎么能告诉if语句改变gameState?我希望我有道理。

void runGame(){

if (objects.length == 0) {
gameState == WINNER);
}
}

2 个答案:

答案 0 :(得分:1)

您似乎将数组与ArrayLists混淆。

阵列是固定长度的"块"您可以通过索引访问的变量。这是一个创建10个整数数组的例子:

int[] array = new int[10];
for(int i = 0; i < array.length; i++){
   array[i] = i;
}

注意使用array.length,它给出了数组可以包含的索引数 - 而不是已设置为值的索引数。

您无法增加数组的大小,并且数组没有remove()函数。但是,Processing确实包含append()和shorten()方法,这些方法接受一个数组并返回另一个包含相同项的数组,只删除或添加索引。

另一方面,ArrayLists是动态大小的对象,包含任意数量的索引。您可以向ArrayList添加或删除其他对象。这是一个例子:

ArrayList<Integer> arrayList = new ArrayList<Integer>();
for(int i = 0; i < 10; i++){
   arrayList.add(i);
}

ArrayLists没有长度变量 - 相反,它们有一个size()方法。此方法确实返回已添加到其中的对象数。

因此,您的问题的答案是您需要决定是否使用数组或ArrayList,然后坚持使用适合该类型的方法。

可在Processing API中找到更多信息:https://www.processing.org/reference/

答案 1 :(得分:0)

假设您使用的是Java,可以使用以下代码来完成:

if (objects.isEmpty()) 
{ 
      gameState = WINNER; 
}