Atölye › Tuğla Kırma › 9/39. adım
Top duvara değince geri sekmeli. Top bir daire: kenarı merkezinden bir yarıçap uzakta.
sol kenar = ball.x - BALL_R sağ kenar = ball.x + BALL_R
Sol kenar 0'ın soluna veya sağ kenar canvas'ın sağına geçtiyse yatay hızı ters çeviririz. "Konum köşe mi, merkez mi?" karışıklığı pek çok çarpışma hatasının kaynağıdır; her seferinde hangisiyle uğraştığını sor.
```js
if (ball.x - BALL_R < 0 || ball.x + BALL_R > canvas.width) {
ball.vx = -ball.vx
ball.x = clamp(ball.x, BALL_R, canvas.width - BALL_R)
}
```if (koşul) { ... } → koşul doğruysa süslü parantezin içini yap, değilse atla.ball.x - BALL_R < 0 → sol kenar 0'ın solunda mı? ball.x + BALL_R > canvas.width → sağ kenar 480'i geçti mi?|| → "veya": ikisinden biri doğruysa koşul doğrudur.ball.vx = -ball.vx → yatay hızı ters çevirir: 3 ise -3, -3 ise 3 olur. Top geri döner.ball.x = clamp(ball.x, BALL_R, canvas.width - BALL_R) → topu duvarların içine geri koyar. Bu olmazsa top
bir sonraki karede hâlâ duvarın içinde kalıp yeniden ters dönebilir ve duvarda titreyerek sıkışır.update içinde ball.y += ball.vy satırının altına bir boş satır bırak ve if bloğunu yaz. Çalıştır: top
sağ duvardan sekecek (ama yukarıdan yine kaçacak).
Beceriler: Çarpışma tespiti, Hız ve yerçekimi