所以我决定查找一些碰撞检测,但我一直无法找到有关两幅图像之间 2d 碰撞检测的正确信息,包括如何正确避免检测图像的透明区域,但我确实找到了一篇我自己附上的帖子到,但问题是我并不真正理解这个帖子,也不明白他为什么要做这些事情......
这是有问题的帖子:https ://stackoverflow.com/posts/336615/revisions
所以首先我想问一下这个解决方案是否真的是一个好的/合适的,或者我是否应该去别处看看。
其次,我想知道,在他的帖子中,他提到使用整数数组,而不是二维数组,设置 1 和 0 来决定像素是否透明,但我真的不知道我应该如何实现这个。起初我认为可以通过形成一串 1 和 0 并将其转换为 Long 来实现,但即使图像宽度仅为 25,Long 也会变得......太长......
我也试过这个,但没有运气,因为代码不适用于这个数组:
long[] array = new long[30*30]; // height * width of the image
int x = 0;
int y = 0;
for(int i = 0; i<30*30; i++){
if(image.getRGB(x,y) == 0){
array[i] = 0;
}
else{ array[i] = 1; }
x++;
if (x==30){
y++;
x=0;
}
}
第三,我希望有人可以解释整个过程以及为什么他所做的事情是必要的。顺便说一句,我确实知道这些位操作员是如何工作的!换句话说,我不明白他在代码中做所有事情的思路/动机,我想了解这一切!
我现在真的不知道该怎么做嘿嘿...