无法在数组类型int [] []上调用splice(int,int)

时间:2019-10-14 16:37:55

标签: processing

我有一个短代码,似乎无法弄清楚。我遇到的最大问题是,我不了解该错误,而且似乎找不到如何更改数组类型的方法。

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数组中删除一项。

1 个答案:

答案 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>