這是我第一個更大的編程項目,所以我幾乎是一個初學者,他遇到了一個問題,這個問題讓我現在幾周感到困惑。也許有人可以幫忙。 :)當與一個矩形的邊緣碰撞時,球會跳躍
我正在構建一個簡單的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描述了障礙物的一半大小。
也許有人可以幫助我。提前致謝。 :)
如果障礙物是*矩形* *單個*值「*障礙物大小的一半*」是什麼意思?一個維度只適用於* square *(一個相當特殊的矩形)。 – Clifford
你確定你不是指「*球大小的一半*」,這似乎更可能給出代碼。 – Clifford
應該沒關係,遊戲區被劃分爲16:9的網格,所以球和障礙物的網格大小相同。是的,障礙都是正方形,對不起。 –