相交算法与 Rectangle.intersects(Rectangle r) 的区别
我去的论坛上有人说我不应该使用 Rectangle.intersects 进行碰撞检测,而应该使用这个算法:
boolean rectangleIntersects(float rect1x, float rect1y, float rect1w,
float rect1h, float rect2x, float rect2y,
float rect2w, float rect2h)
{
return (rect1x + rect1w >= rect2x &&
rect1y + rect1h >= rect2y &&
rect1x <= rect2x + rect2w &&
rect1y <= rect2y + rect2h);
}
但这不是 Rectangle.intersects 吗? > 算法不同,并且比这个更好?
Someone on a forum I go to said I shouldn't use Rectangle.intersects
for my collision detection, and I should use this algorithm instead:
boolean rectangleIntersects(float rect1x, float rect1y, float rect1w,
float rect1h, float rect2x, float rect2y,
float rect2w, float rect2h)
{
return (rect1x + rect1w >= rect2x &&
rect1y + rect1h >= rect2y &&
rect1x <= rect2x + rect2w &&
rect1y <= rect2y + rect2h);
}
But isn't the Rectangle.intersects
algorithm different, and better than this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Rectangle.intersects
基本相同,只是您的算法使用float
而不是double
并包括边界的相等条件。Rectangle.intersects
is basically the same except that your algorithm usesfloat
instead ofdouble
and includes equality conditions for the bounds.