我有一个短代码,似乎无法弄清楚。我遇到的最大问题是,我不了解该错误,而且似乎找不到如何更改数组类型的方法。
app-dep
我正在尝试要做的是从阵列中删除int [][] spawnLocatiesCoins = new int [20][2];
void collectenVanCoins () {
if (gameState == 1) {
for (int i = 0; i<10; i++) {
if (key == 's' && dist(spawnLocatiesCoins[i][0], spawnLocatiesCoins[i][1], xPosPlayer1, yPosPlayer1) < 20) {
println("catch" + i);
score++;
spawnLocatiesCoins.splice(i, 1);
}
}
}
}
。我在这里收到的错误消息是spawnLocationsCoins[i]
。我已经尝试了几种不同的拼接方法。我也尝试使用Cannot invoke splice(int, int) on the array type int[][]
方法,但没有结果。
有人可以向我解释如何从remove
数组中删除一项。
答案 0 :(得分:2)
您可能正在尝试使用Processing splice函数,但是该函数无法实现您想要的功能(“将值或值数组插入到现有数组中”)。
我想最好是使用ArrayList而不是数组,然后可以使用.remove函数,如下所示:
list.remove(index);
由于要存储2个值(x和y),因此可以创建一个包含int数组的ArrayList
ArrayList<int[]> spawnLocatiesCoins = new ArrayList<int[]>();
您可以添加如下值:
spawnLocatiesCoins.add(new int[]{x_value, y_value});
像这样访问它们:
spawnLocatiesCoins.get(index)[index_in_the_array];
您也可以使用PVectors(可以存储2/3值的变量(取决于您是否正在制作3D程序))代替数组,但是此时您可能不需要它们。 / p>