Atölye › Bilardo › 12/33. adım
Bant, topu geri yansıtır. Top sol kenarı geçtiyse onu kenara geri koyar, yatay hızının işaretini çeviririz: sola giden sağa döner. Üst ve alt bantta aynısı dikey hızla.
Gerçek bantlar enerjinin bir kısmını yutar; bu yüzden sekişte hızın yalnız %80'i kalacak.
Topun merkezi kenara R kadar yaklaşınca top banda değmiş olur: sınır LEFT değil, LEFT + R.
```js
const BOUNCE = 0.8 // speed kept when hitting a cushion
// Cushions: reflect the velocity and lose a little speed.
if (b.x < LEFT + R) [b.x, b.vx] = [LEFT + R, -b.vx * BOUNCE]
if (b.x > RIGHT - R) [b.x, b.vx] = [RIGHT - R, -b.vx * BOUNCE]
if (b.y < TOP + R) [b.y, b.vy] = [TOP + R, -b.vy * BOUNCE]
if (b.y > BOTTOM - R) [b.y, b.vy] = [BOTTOM - R, -b.vy * BOUNCE]
```if (b.x < LEFT + R) → topun merkezi sol kenara R'den fazla yaklaştıysa top banda girmiştir.[b.x, b.vx] = [LEFT + R, -b.vx * BOUNCE] → dizi ayrıştırma ile iki değeri tek satırda ver: sağda iki elemanlı bir
dizi kurulur, solda sırayla iki değişkene dağıtılır.b.x = LEFT + R → topu tam kenara geri koy (bandın içinde kalmasın).b.vx = -b.vx * BOUNCE → eksi işareti yönü çevirir, BOUNCE hızın %80'ini bırakır.FRICTION satırının altına BOUNCE yaz.step içindeki döngüde b.y += b.vy satırının altına yorum satırını ve dört bant satırını yaz.Beceriler: Hız ve yerçekimi, Çarpışma tespiti
← Sürtünme Nişan ve yuvarlanma →