Atölye › Zelda Tarzı Zindan › 15/22. adım
Bir anahtarın k üstüne yürümek onu alsın; bir kalbin h üstüne yürümek bir kalp geri versin (en çok 3). Kare
zemine dönsün. Anahtarlar sarı, kalpler kırmızı; üst şerit anahtarlarını saysın.
```js
let keysHeld
keysHeld = 0
// Things on the tile under the middle of the player.
const col = Math.floor(cx / T)
const row = Math.floor(cy / T)
const here = tiles[row][col]
if (here === 'k' || here === 'h') {
if (here === 'k') keysHeld += 1
else hearts = Math.min(3, hearts + 1)
tiles[row][col] = '.'
}
if (ch === 'k') {
ctx.fillStyle = '#eab308'
ctx.fillRect(x + 10, y + 8, 12, 16)
}
if (ch === 'h') {
ctx.fillStyle = '#e11d48'
ctx.fillRect(x + 9, y + 9, 14, 14)
}
ctx.fillStyle = 'white'
ctx.font = 'bold 16px sans-serif'
ctx.textAlign = 'left'
ctx.fillText('Keys ' + keysHeld, 100, 30)
```cx, cy) altındaki kare → üstünde durduğu kare.Math.min(3, hearts + 1) → 3 kalbin üstüne çıkma.tiles[row][col] = '.' → alınan şey kaybolur. İlk adımda odayı dizilere kopyalamamızın sebebi buydu.let hearts altına let keysHeld, reset'te hearts = 3 altına keysHeld = 0 yaz.update'te oda geçiş bloğunun altına, bir boş satırdan sonra alma bloğunu yaz.Beceriler: Oyun durumları, Çarpışma tespiti
← Yanıp sönme ve kalpler Hatırlayan dünya →