gpt4 book ai didi

java - 像素完美碰撞检测 Android

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:50 24 4
gpt4 key购买 nike

好的,我正在开发 Android 游戏。我需要实现像素完美碰撞检测。我已经在每个图像周围设置了边界框,每个边界框都经过变换以匹配图像的当前旋转。这一切都很好。我还将每个位图中的像素数据存储在一个数组中。有人可以帮我找出检测像素是否重叠的最有效方法吗?在此先感谢您的帮助!

最佳答案

基本思想是为每个对象创建一个位掩码,您可以在每个像素中指示该对象是否确实存在。然后比较两个对象的位掩码的每个像素。

您可以通过计算两个边界框重叠的矩形区域来最大程度地减少需要检查的像素数。该区域内的像素是您需要检查的内容。

遍历所有这些像素,并检查像素是否已填充到两个对象中。如果它们中的任何一个是,那么就会发生碰撞。

如果您的矩形与 x/y 轴对齐,要找到重叠部分,请找到重叠部分的左侧、右侧、顶部和底部。它看起来像这样(我可能搞砸了边缘情况,还没试过):

int left = max(obj1.left, obj2.left)
int right = min(obj1.right, obj2.right)
int top = min(obj1.top, obj2.top)
int bottom = max(obj1.bottom, obj2.bottom)

for (int x = left; x < right; x++) {
for (int y = top; y < bottom; y++) {
if (obj1.isFilled(x,y) && obj2.isFilled(x,y)) {
return true;
}
}
}

关于java - 像素完美碰撞检测 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5914911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com