이것은 내 첫 번째 커다란 프로그래밍 프로젝트이므로 버그를 몇 주 동안이나 발견 한 초보자입니다. 어쩌면 누군가가 도울 수 있습니다. :)사각형의 가장자리와 충돌 할 때 볼이 튀어 오름
저는 간단한 2D 게임을 만들고 있습니다. 스마트 폰의 피칭과 요잉을 통해 공을 제어 할 수 있습니다. 공이 사각형 - 장애물의 정확한 가장자리에 부딪 칠 때마다 먼저 공으로 들어가서 무작위로 점프합니다. 장애물이 직선을 만들 때마다 발생하지 않습니다.
디버깅 중 잠시 후 나는 게임의 물리학 부분에 오류가 있어야한다고 확신합니다. 코드는 다음과 같습니다.
float var = gameView.screenSize()/2;
// If the player touches the barrier, its speed will invert
for(RectF r : barrier) {
if(playerSpeedX > 0 && playerX > r.left - var && playerX < r.right + var && playerY >= r.top && playerY <= r.bottom) { playerX = r.left - var; playerSpeedX = -playerSpeedX;} // left
if(playerSpeedX < 0 && playerX > r.left - var && playerX < r.right + var && playerY >= r.top && playerY <= r.bottom) { playerX = r.right + var; playerSpeedX = -playerSpeedX;} // right
if(playerSpeedY > 0 && playerY > r.top - var && playerY < r.bottom + var && playerX >= r.left && playerX <= r.right) { playerY = r.top - var; playerSpeedY = -playerSpeedY;} // top
if(playerSpeedY < 0 && playerY > r.top - var && playerY < r.bottom + var && playerX >= r.left && playerX <= r.right) { playerY = r.bottom + var; playerSpeedY = -playerSpeed;} //bottom
}
var는 장애물 크기의 절반을 나타냅니다.
어쩌면 누군가 나를 도울 수 있습니다. 미리 감사드립니다. :)
장애물이 * 직사각형 인 경우 * 단일 * 값 "* 장애물 크기 *의 절반"은 무엇을 의미합니까? 단일 치수는 * 사각형 (오히려 특정 직사각형)에 대해서만 의미가 있습니다. – Clifford
코드가 주어질 확률이 높은 "볼의 크기 * 절반"을 의미하지 않았다는 것이 확실합니까? – Clifford
게임 영역은 16 : 9 그리드로 나뉘어 있으므로 공과 장애물은 동일한 그리드 크기를 사용합니다. 그리고 예, 장애물은 모두 사각형입니다. 죄송합니다. –