Atölye › Zelda Tarzı Zindan › 11/22. adım
4 kareden yakın bir düşman kahramanı kovalasın, senin yürüyüşünden biraz yavaş. Kahramanın hangi eksende daha uzak olduğuna bakıp o eksende yürüsün; yalnız düz yürüyen bir Zelda düşmanı gibi.
```js
} else {
const ex = e.x + SIZE / 2 - cx
const ey = e.y + SIZE / 2 - cy
if (Math.hypot(ex, ey) < 4 * T) {
// Close: chase the player along the longer axis.
e.dir = Math.abs(ex) > Math.abs(ey) ? [-Math.sign(ex), 0] : [0, -Math.sign(ey)]
move(e, e.dir[0] * 1.1, e.dir[1] * 1.1)
}
}
```ex, ey → kahramanın ortasından (cx, cy: update'te oda geçişinde hesaplanmıştı) düşmanın ortasına.Math.hypot(ex, ey) < 4 * T → 128 pikselden yakın.Math.abs(ex) > Math.abs(ey) ? [-Math.sign(ex), 0] : [0, -Math.sign(ey)] → hangi eksende uzaksa o eksende,
ters yöne (kahramana doğru) yürü. 1.1 piksel: kahramandan (2.5) yavaş, kaçabilirsin.else → yalnız savrulmuyorken yürür.Düşman döngüsünde savrulma bloğunun kapanışını } else { yap ve içine kovalama satırlarını yaz. Çalıştır ve bir düşmana yaklaş.
Beceriler: Hız ve yerçekimi