이 "브레이크 아웃 스타일"게임이 있습니다.
나는 중앙에 대포, 대포 주변 블록 및 블록 주위에 패드가 있습니다. 게임의 모습은 다음과 같습니다.
픽셀 당 충돌을 일으켰 으며 다음 수학으로 블록과 접촉 할 때 " 공이 반영됩니다 ".
Ball.Direction = 2 * (Block.Direction - Ball.Direction) + 180;
파란색 선이 공 방향이고 검은 선 (기준선)이 블록 표면입니다.
방향 은 라디안으로 표시되는 각도입니다 (물론 각도로 변환 할 수 있음).
공은 다음에 의해 움직입니다.
// Event.ENTER_FRAME
x += Math.sin(Direction) * Velocity;
y -= Math.cos(Direction) * Velocity;
여태까지는 그런대로 잘됐다.
패드 (작은 색 블록 주위에 3 개의 어둡고 큰 블록)와 함께 내 문제가 왔습니다.
방향이 바뀌면 표면 각도가 바뀝니다.
그 이상, 공도 측면을 치면 안타의 방향과 공의 새로운 방향을 어떻게 측정 할 수 있습니까?
ps : 필요한 경우 코드와 재생 가능한 swf를 제공 할 수 있습니다.
편집하다
좋아, 각도 문제는 Vectors 로 해결 되었지만 여전히 측면과 후면 충돌에 문제가 있습니다.
그것에 대한 또 다른 질문을 열고 여기에 연결하겠습니다.