나는 바운스하는 공을 만드는 프로그램이있다. 두 개의 볼이 충돌하면 두 개의 작은 볼로 나뉘어져 다른 방향으로 움직입니다.Java. 충돌 후 분열하여 다른 방향으로 움직이는 공
이 나는 그들이 즉시하지 않습니다 다시 충돌 있도록 작은 공을 배치 할 위치를 결정하는 데 도움이됩니다 충돌
public boolean intersects (Ball b) {
double distance = Math.sqrt(Math.pow((this.x - b.x), 2) + Math.pow((this.y - b.y), 2));
if (this.size/2 + b.size/2 >= distance && !(this.equals(b))) {
return true;
} else return false;
내가 아이디어를 찾고 있어요, 처리하는 방법이다. 나는 다른 기동을 시도했으나 모두가 너무 가까워서 모두가 튀는 것을 시작하고 혼돈이됩니다. 여기
는 볼이 충돌 할 때 내가, 내가 두 볼 개체가 순간b.x = b.x + b.dx;
b.y = b.y + b.dy;
를 다음을 수행 공을 이동하려면 클래스 볼
public Ball(double x, double y, double size, double dx, double dy) {
this.x = x;
this.y = y;
this.size = size;
this.dx = dx;
this.dy = dy;
입니다. 나는 그들의 중심의 좌표를 알고 x
, y
, 속도 dx
나는 기본적으로 필요 원인있는 그들이,
내가보기를 처리하는 코드를 생략 y 축을 따라 x 축과 속도 dy
를 따라 이동 해결 방법, dx
, dy
, x
및 y
을 4 개의 볼에 대해 변경하여 모두가 서로 멀어지고 즉시 충돌하지 않도록합니다.
저는 코드 솔루션이 아니라 일반적인 아이디어가 필요합니다.
두 번째 제안은 실제로 나에게 아이디어를 제공합니다. 교차점의 포인트 (좌표)를 얻으면 그 점 둘레에 4 개의 볼을 배치하고 그 위에 놓인 dx와 dy를 설정할 수 있습니다. 왜냐하면 지금 현재 공의 이전 방향에 따라 dx를 변경하지만, 다른 공의 위치를 고려하지 않기 때문입니다. – Diana