난 원과 사각형으로 간단한 2d 충돌 감지에 문제가 있습니다. 원의 중심이 직사각형의 어떤 점과 겹치는지 검사기가 확인합니다.이 간단한 원/사각형 충돌 감지의 문제점은 무엇입니까?
을 heres 검사 :
boolean overlaps(Circle circle) {
for (double i = topLeft.x; i < (topLeft.x + width); i++)
{
for (double j = topLeft.y; j < (topLeft.y + height); j++)
{
if (circle.center.x == i && circle.center.y == j)
{
return true;
}
}
}
return false;
}`
매우 간단하고 포인트. 이 오류는 if 문에서 circle.center.x
및/또는 circle.center.y
과 함께 나타납니다. 여기
public class Circle {
Point center;
double radius;
/**
* Constructor.
*
* @param center the center Point of the circle
* @param radius the radius of the circle
*/
public Circle(Point center, double radius) {
center = this.center;
radius = this.radius;
}
/**
* Get the current center point of the circle.
*
* @return the center point of the circle
*/
public Point getCenter() {
return center;
}
/**
* Set the center point of the circle.
*
* @param center the (new) center point of the circle
*/
public void setCenter(Point center) {
this.center = center;
}
/**
* Get the current radius.
*
* @return the current radius
*/
public double getRadius() {
return radius;
}
/**
* Set the radius.
*
* @param radius the (new) radius of the circle
*/
public void setRadius(double radius) {
this.radius = radius;
}
}`
는 어디서 잘못된 것입니까? 확실히 Point 클래스에 문제가 될 수는 없습니다. 다른 점은 지금까지 잘못되었을 것입니다. 미리 감사드립니다.
왜 2D 루프? 간단한 불평등 (예 : '<' or '>')이 확인하지 않는 이유는 무엇입니까? –
실제로 clcto가 제안한 것으로 변경했지만 문제는 여전히 circle 클래스 내에 있습니다. – GravityCheck