所以我只想检查两张图片是否有碰撞。我正在循环遍历世界上的每个图像对象,然后循环遍历每个图像中的每个像素并检查其中一个像素是否与我正在测试碰撞的当前图像中的一个像素具有相同的坐标。对我来说,这似乎非常低效。如果有人能够指出一种更简单,更不密集的方式(如果有的话),那就太好了。 这是我的代码:
for (int i = 0; i < picture_list.size(); i++)
{
if (picture_list.get(i) != this)
{
if (picture_list.get(i).isCollidable() == true)
{
Pixel[][] these_pixels = this.getPixels2D();
Pixel[][] other_pixels = picture_list.get(i).getPixels2D();
for (int this_row = 0; this_row < these_pixels.length; this_row++)
{
for (int this_col = 0; this_col < these_pixels[this_row].length; this_col++)
{
for (int row = 0; row < other_pixels.length; row++)
{
for (int col = 0; col < other_pixels[row].length; col++)
{
if (these_pixels[this_row][this_col].getWorld_x() == other_pixels[row][col].getWorld_x()
|| these_pixels[this_row][this_col].getWorld_y() == other_pixels[row][col].getWorld_y())
{
return true;
}
else
{
return false;
}
}
}
}
}
}
}
}
return false;
对不起有多乱。