Lau*_*bet 5 java android collision-detection sprite transparent
我正在编写一个游戏,我想用透明边框(精灵)对着圆圈碰撞图像.
通过检查与不透明的像素的碰撞,很容易知道圆是否与图像重叠.
我遇到的问题是要知道正常角度才能反弹.
我需要一个库(Java)或算法给出一个图像,它会返回一个数组,其像素位于图像的边界,这样我就可以找到表面两点之间的斜率.
我可以从中学习任何库/算法/代码片段吗?
这是一个简单的方法:
从原始图像创建一个掩模,其中所有透明像素都是0,所有非透明像素都是1
然后,通过减去每个像素执行在您的掩模的简单边缘检测(x,y),这将是0或1,从像素(x+1,y+1)和取绝对值.
这将为您1提供图像边缘的像素和0其他任何地方的像素.
注意:此方法基本上等同于将图像视为2d函数并计算其渐变.边缘是强度表面的陡峭部分(对应于大的梯度值).以下是有关基于渐变的边缘检测的更多信息.
这是一个示例图像:

首先屏蔽所有非透明像素:

然后将图像向下移动一个像素并从中减去它.
这将创建下面的图像.现在简单地用值读出矩阵索引1.
这是你的边缘像素数组.

注意:如果您的图像包含内部透明像素,此技术也会找到内部边缘,这对您来说可能是也可能不是问题...
| 归档时间: |
|
| 查看次数: |
2743 次 |
| 最近记录: |