Atölye › Tuğla Kırma › 14/39. adım
Tuğlalar geliyor. Bir sırada 8 tuğla olacak. Sekiz konumu elle yazmak yerine onları bir döngü ile hesaplayacağız: her tuğla bir öncekinin bir tuğla eni artı bir boşluk sağında.
Tuğlaları bir dizide (listede) tutacağız: bricks. Bu adımda tuğlalar henüz çizilmeyecek; önce listeyi
kuruyoruz.
```js
const COLS = 8
const BRICK_W = 54
const BRICK_H = 18
const GAP = 4
const TOP = 50
const LEFT = 10 // (480 - 8 bricks - 7 gaps) / 2, so the wall is centered
let bricks
function buildBricks() {
bricks = []
for (let col = 0; col < COLS; col++) {
bricks.push({ x: LEFT + col * (BRICK_W + GAP), y: TOP, row: 0, alive: true })
}
}
```COLS sütun sayısı (8), BRICK_W ve BRICK_H tuğlanın eni ve boyu, GAP aralarındaki boşluk, TOP
duvarın üstten, LEFT soldan uzaklığı.LEFT = 10 nereden geliyor? 8 tuğla ve 7 boşluk 8 × 54 + 7 × 4 = 460 piksel tutar. 480'den 20 kalır;
iki kenara 10'ar piksel: sıra ortalanır. Böyle sayıları bir kez hesaplayıp adlı sabitlere yazmak,
pikselleri deneme yanılmayla kaydırmaktan çok daha iyidir.bricks = [] → boş bir dizi (liste) ile başla.for (let col = 0; col < COLS; col++) { ... } → döngü. Parantezde üç parça var:let col = 0 → sayaç 0'dan başlasın.col < COLS → sayaç 8'den küçük olduğu sürece devam et.col++ → her turdan sonra sayacı bir artır (col += 1 ile aynı).
Yani içerisi col = 0, 1, 2, ... 7 için 8 kez çalışır.LEFT + col * (BRICK_W + GAP) → her sütun bir öncekinden 58 piksel sağda. col = 1 için 10 + 58 = 68.bricks.push({ ... }) → listenin sonuna yeni bir tuğla ekler. row: 0 hangi sırada olduğu, alive: true
"hâlâ ayakta" demek (true = evet, false = hayır). Kırılınca false yapacağız.const BALL_R = 7 satırının altına altı sabiti yaz.let ball satırının altına let bricks yaz.resetBall fonksiyonunun kapanış }'inin altına bir boş satır bırak ve buildBricks fonksiyonunu yaz.buildBricks()'i çağırmıyor), kontroller yeşil olmalı.Beceriler: Döngüler, Diziler ve nesneler
← Raketle nişan al Tuğlaları çiz →