gpt4 book ai didi

java - 如何使 Android View 成为矩形以外的形状

转载 作者:太空宇宙 更新时间:2023-11-04 12:56:19 24 4
gpt4 key购买 nike

我正在处理一些动画 View 的碰撞检测,并且正在为一些 Alpha ImageView 设置动画。发生的情况是,即使第二个对象位于 ImageView 的透明部分,但它显然没有接触它,但 ImageView 容器是超出图像边界的矩形框,也会触发碰撞检测。

如何检测它何时触及图像的绘制部分或使容器成为三角形?

以下是我检测两个 View 之间的碰撞的方法:

public boolean checkCollision(View v1, View v2) {
if (v1 == null || v2 == null) {
log.e("Views must not be null");
throw new IllegalArgumentException("Views mut be not null");
}
Rect R1 = new Rect();
v1.getHitRect(R1);
Rect R2 = new Rect();
v2.getHitRect(R2);
return Rect.intersects(R1, R2);
}

最佳答案

我建议做的是对边界框进行初步检查,看看是否需要执行更准确的检查。如果只有几个对象发生碰撞,则此步骤是可选的,但如果有很多对象,它将节省大量性能。如果您确实需要进行进一步检查,请在图像周围确定有实体纹理的点,然后检查与这些点的碰撞。如果您愿意,我可以尝试为您提供一些代码,但请查看这里的问题,它深入解释了事情。 https://gamedev.stackexchange.com/questions/30866/collision-detection-with-non-rectangular-images

关于java - 如何使 Android View 成为矩形以外的形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35350031/

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