Atölye › OutRun Tarzı Yarış › 15/44. adım
Fren, boşta gitme ve azami hız
Ne yapıyoruz
Sürüşü gerçekçi yapan şey üç farklı oran:
- yukarı ok: her karede +1.2 (gaz),
- aşağı ok: her karede -3 (fren gazdan çok daha sert),
- hiçbirine basmazsan: her karede -0.4 (araba kendi kendine yavaşlar).
Bir de sınır koyacağız: hız ne 0'ın altına düşsün ne de en yüksek hızı (MAX_SPEED) aşsın.
```js
const MAX_SPEED = 120 // world units per frame
if (keys.ArrowUp) speed += 1.2
else if (keys.ArrowDown) speed -= 3
else speed -= 0.4
speed = Math.max(0, Math.min(MAX_SPEED, speed))
```
Ne işe yarıyor
else if (keys.ArrowDown) speed -= 3 → yukarı basılı değilse ama aşağı basılıysa: fren.
else speed -= 0.4 → ikisi de basılı değilse: yavaşça yavaşla. if / else if / else zincirinde sadece ilk doğru
koşulun işi yapılır.
Math.min(MAX_SPEED, speed) → iki sayının küçüğünü verir: hız 120'yi geçemez.
Math.max(0, ...) → iki sayının büyüğünü verir: hız eksiye düşemez (araba geri gitmez).
- İkisi iç içe: hızı 0 ile
MAX_SPEED arasında sıkıştırır.
Sıra sende
const DRAW = ... satırının altına MAX_SPEED satırını yaz.
update içinde if (keys.ArrowUp) ... satırının hemen altına üç yeni satırı yaz.
- Çalıştır: gazı bırakınca yavaşlamalı, aşağı okla sert fren yapmalısın.
Beceriler: Hız ve yerçekimi, Klavye ve fare girdisi
← Gaz pedalı Senin araban →
Tüm adımlar
- Gökyüzü ve zemin
- Tekrar tekrar çiz
- Perspektif
- Bir parça yol
- Parçalardan bir yol
- Pistte neredeyiz?
- Öndeki yol
- Şeritler
- Uzaktan yakına boya
- Bordür ve orta çizgi
- Şeritli çimen
- Hareket tek bir sayı
- Hangi tuşlar basılı?
- Gaz pedalı
- Fren, boşta gitme ve azami hız
- Senin araban
- Hız göstergesi
- Telefon için pedal
- Kamerayı yana kaydır
- Direksiyon
- Duran araba dönmez
- Çimen yavaşlatır
- Dokunarak direksiyon
- Virajlı bir pist
- Yolu kıvır
- Virajda sıçrama olmasın
- Hangi parçadayım?
- Viraj dışarı çeker
- Rakip arabalar
- Döngüde uzaklık
- Uzaklaştıkça küçülen arabalar
- Trafik akıyor
- Arkadan çarpma
- Turları say
- Turu göster
- Tur süresi
- Süreyi göster
- En iyi tur
- En iyi turu göster
- Yarışıyor mu, bitti mi?
- Bitiş çizgisi
- Bitti!
- Yeniden yarış
- Kendin yap: saate karşı