Arrays 处理中的数组

Arrays 处理中的数组,arrays,processing,Arrays,Processing,我对编程非常陌生,最近开始处理。 在我的代码中,collide函数将touch boolean设置为true,但通过对其进行排列,它只测试最终数组的true,而不测试它之前的数组。我哪里出了问题?我希望我的问题足够清楚 编辑: 对不起,让我再试一次。 我想我的问题是如何正确地排列collide函数。我似乎无法为数组中的碰撞添加[I]。 目前,代码可以工作,但它只测试最后一个数组的true,而不测试它之前的数组 数组代码: for(int i = 0 ; i < lineDiv; i++){

我对编程非常陌生,最近开始处理。 在我的代码中,collide函数将touch boolean设置为true,但通过对其进行排列,它只测试最终数组的true,而不测试它之前的数组。我哪里出了问题?我希望我的问题足够清楚

编辑:

对不起,让我再试一次。 我想我的问题是如何正确地排列collide函数。我似乎无法为数组中的碰撞添加[I]。 目前,代码可以工作,但它只测试最后一个数组的true,而不测试它之前的数组

数组代码:

for(int i = 0 ; i < lineDiv; i++){ 
collide(xPts[i], yPts[i], vecPoints.xPos, vecPoints.yPos, myDeflector.Thk, vecPoints.d);
for(inti=0;i
碰撞功能:

void collide(float pt1x, float pt1y, float pt2x, float pt2y, int size1, int size2){
if (pt1x + size1/2 >= pt2x - size2/2 && 
pt1x - size1/2 <= pt2x + size2/2 && 
pt1y + size1/2 >= pt2y - size2/2 && 
pt1y - size1/2 <= pt2y + size2/2) {
touch = true;
}
else{
touch=false;
}
void冲突(浮点pt1x、浮点pt1y、浮点pt2x、浮点pt2y、整数大小1、整数大小2){
如果(pt1x+size1/2>=pt2x-size2/2&&
pt1x-size1/2=pt2y-size2/2&&
pt1y-size1/2您的“touch”变量是全局变量。每次调用collide()函数时,它都会覆盖之前设置的值。也许您只是想在调用collide()后测试touch是否为true,然后退出for循环


或者,您可能希望创建collide()返回touch布尔值,避免使用全局值。

看起来您要做的是运行一个循环,在数组的该元素上运行函数,如果其中任何一个为真,则返回一个值。这是我的最佳猜测,您可能需要编辑您的问题以澄清您要执行的操作。因此假设:

1) 将方法更改为函数

boolean collide(float pt1x, float pt1y, float pt2x, float pt2y, int size1, int size2){
if (pt1x + size1/2 >= pt2x - size2/2 && 
pt1x - size1/2 <= pt2x + size2/2 && 
pt1y + size1/2 >= pt2y - size2/2 && 
pt1y - size1/2 <= pt2y + size2/2) {
return true;
}
else{
return false;
}
布尔冲突(浮点pt1x、浮点pt1y、浮点pt2x、浮点pt2y、整数大小1、整数大小2){
如果(pt1x+size1/2>=pt2x-size2/2&&
pt1x-size1/2=pt2y-size2/2&&

pt1y-size1/2您的希望渺茫:)…请解释更多,难以理解这个问题。您所说的“排列
touch
boolean”是什么意思?我想您的意思是
collide()
函数只对传递给它的最后一个参数返回true,对吗?(即
I
等于lineDiv时).你应该解释你期望发生什么以及为什么。
touch = false;  // if you don't set this to false before the loop, it will be the last value taken
for(int i = 0 ; i < lineDiv; i++){ 
     if (collide(xPts[i], yPts[i], vecPoints.xPos, vecPoints.yPos, myDeflector.Thk, vecPoints.d)) touch = true;