Atölye › Angry Birds Tarzı Sapan › 28/47. adım
Üst üste duran iki kutu birbirinin üzerinde kayarken sürtünmeli, yavaşlamalı. Yoksa yığınlar buz pateni yapar gibi dağılır.
Sürtünme yüzey boyunca çalışır: normale dik yönde. Gücü sınırlı: en fazla darbenin yarısı (0.5 * j). Böylece
sert çarpan kutular daha çok sürtünür, hafifçe değenler az.
```js
// Friction: slow down the sliding along the surface.
const slide = (a.vx - b.vx) * ny - (a.vy - b.vy) * nx
const f = Math.max(-0.5 * j, Math.min(0.5 * j, slide / (ia + ib)))
a.vx -= f * ny * ia
a.vy += f * nx * ia
b.vx += f * ny * ib
b.vy -= f * nx * ib
```(ny, -nx): normalin çeyrek tur döndürülmüşü. Normal dikeyse (üst üste duruyorlarsa) bu yön
yataydır.const slide = (a.vx - b.vx) * ny - (a.vy - b.vy) * nx → iki kutunun o yönde birbirinin üstünde ne hızla
kaydığı.slide / (ia + ib) → kaymayı tam durdurmak için gereken sürtünme.Math.max(-0.5 * j, Math.min(0.5 * j, ...)) → onu −0.5j ile 0.5j arasında tutar (Math.min üstten, Math.max
alttan keser). Sürtünme darbenin yarısından güçlü olamaz.collide'ın sonuna, b.vy += j * ny * ib satırının altına sürtünme satırlarını yaz.Beceriler: Hız ve yerçekimi
← Her çift karşılaşır Daha küçük adımlar →