Atölye › Pinball › 12/42. adım
Topu dışarı ittik ama hızı hâlâ duvarın içine doğru. Gerçek bir top duvara çarpınca geri seker. Bunu hızı ikiye ayırarak yaparız:
Ters çevirirken biraz enerji kaybolur: bounce = 0.5 ile top duvardan yarı hızla döner. Bu birkaç satır dik
duvarda da, eğik duvarda da, köşede de aynı şekilde çalışır. Masanın yalnız çizgilerden yapılmasının sebebi bu.
```js
const vn = ball.vx * nx + ball.vy * ny
if (vn < 0) {
ball.vx -= (1 + bounce) * vn * nx
ball.vy -= (1 + bounce) * vn * ny
}
```const vn = ball.vx * nx + ball.vy * ny → yine bir nokta çarpımı: hızın normal yönündeki payı. Yani top
duvardan ne hızla uzaklaşıyor.vn eksi ise top duvara doğru gidiyor (çarpıyor).if (vn < 0) { → yalnız duvara doğru gidiyorsa sektir.ball.vx -= (1 + bounce) * vn * nx → hızdan normal yönünde (1 + bounce) × vn çıkar:vn çıkarsaydık duvara doğru hız sıfırlanırdı (top yapışırdı);bounce × vn daha çıkarmak onu ters yöne çevirir. bounce = 0.5 ile geri dönüş hızı gelişin
yarısı.-= → "şundan çıkar" (a -= 2, a = a - 2 ile aynı). vn eksi olduğu için çıkarmak aslında dışarı doğru ekler.hitSegment içinde ball.y = py + ny * R satırının altına, return true satırının üstüne beş satırı
yaz.Beceriler: Hız ve yerçekimi, Çarpışma tespiti
← Topu dışarı it Küçük adımlar ve hız sınırı →