Atölye › Bilardo › 25/33. adım
Ok tuşları hassas ama yavaş. Bilardo oyunlarının çoğu fareyi ya da parmağı sapan gibi kullanır: basarsın, vurmak istediğin yönün tersine çekersin ve bırakırsın. Ne kadar çok çekersen vuruş o kadar sert.
Hem yön hem güç tek bir oktan çıkar: noktadan isteka topuna doğru. pull (çek) fonksiyonu bir noktayı nişana ve güce
çevirecek. Bu adımda yalnız fonksiyonu yazıyoruz; fareye bir sonraki adımda bağlayacağız.
```js
// Pull back from the cue ball like a slingshot: the shot goes the other way, harder the further you pull.
function pull(point) {
aim = Math.atan2(cue.y - point.y, cue.x - point.x)
power = Math.min(MAX_POWER, Math.hypot(point.x - cue.x, point.y - cue.y) / 6)
}
```Math.atan2(dy, dx) → bir okun açısını verir, her yönde doğru: cos/sin'in tersi. Dikkat: önce dy, sonra dx.cue.y - point.y, cue.x - point.x → noktadan isteka topuna doğru ok. Topun solunu çekersen ok sağa bakar:
vuruş sağa gider.Math.hypot(point.x - cue.x, point.y - cue.y) → çekme uzaklığı; / 6 ile güce çevrilir: 60 piksel → 10 güç.Math.min(MAX_POWER, ...) → ne kadar çekersen çek en fazla 16.function draw() { satırının üstüne yorumuyla birlikte pull fonksiyonunu yaz; altında bir boş satır kalsın.
Çalıştır: ekran değişmez, kontroller yeşil.
Beceriler: Hız ve yerçekimi, Fonksiyonlar
← Güç çubuğu Basarak nişan al →