gpt4 book ai didi

安卓开发 : Simplest collision detection?

转载 作者:搜寻专家 更新时间:2023-11-01 09:12:55 25 4
gpt4 key购买 nike

我正在尝试完成碰撞检测。我没有使用 OpenGl,我使用的是 canvas/surfaceview。

我有 2 个位图。到目前为止,这是我得出的结论:

public boolean inBounds(int x2,int y2, int x,int y,int width,int height){
if(x2 > x && x2 < x + width -1 && y2 > y && y2 < y + height -1){
return true;
}
return false;

}

这确实会运行,但它只会在 x2 和 y2 的角在另一个对象内部时检测到碰撞。

那么如何改进我的碰撞检测?

enter image description here

我在网上找到的这张图片应该可以在我的程序中检测到碰撞。

//西蒙

最佳答案

如果它们是圆圈,那么这里有一些伪代码:

if (Math.sqrt(Math.pow(bitmap1.centerX-bitmap2.centerX, 2) + Math.pow(bitmap1.centerY-bitmap2.centerY, 2))<=bitmap1.width) 
return true;
else
return false;

由于您现在需要矩形(并假设它们的大小不同):

if (Math.abs(bitmap1.centerX-bitmap2.centerX)<=(bitmap1.width+bitmap2.width)/2f
&& Math.abs(bitmap1.centerY-bitmap2.centerY)<=(bitmap1.height+bitmap2.height)/2f)
return true;
else
return false;

希望对您有所帮助!

关于安卓开发 : Simplest collision detection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6945567/

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