WEEK 06 · JAVASCRIPT
02|變數、物件與陣列
看懂一小段,動手改一點,再回到遊戲找用途。
先認識資料
let 用於之後可能重新指定的變數;const 不可重新指定。但 const 指向的物件或陣列,內部資料仍可修改。
常見資料有:數字 320、字串 'playing'、布林值 true / false。
let state = 'playing';
state = 'win';
const keys = {};
keys['ArrowLeft'] = true; // 修改物件內容,沒有重新指定 keys物件:把同一個東西的資料放一起
x、y 是位置;w、h 是寬高;speed 是速度。冒號左邊是屬性名稱,右邊是值。
cannon.x 讀取砲台的 x 座標;也能用 cannon['x']。事件中的 keys[e.key] 則使用 e.key 的內容當作屬性名稱。
cannon = { x: W / 2, y: H - 60, w: 50, h: 56, speed: 320 };
cannon.x = 180;
cannon.speed = 400;陣列:存放多個東西
陣列從編號 0 開始。遊戲把每架敵機存成一個物件,再把物件放入 enemies 陣列。
enemies = [
{ x: 100, alive: true },
{ x: 250, alive: true }
];
enemies[0].x = 120; // 第一架敵機
bullets = []; // 空陣列,稍後才新增子彈表單輸入通常是字串
.value 取得輸入內容。'10' + '20' 會串接成 '1020';先用 Number() 轉成數字才相加。空白需先檢查,因為 Number('') 會得到 0。
const total = Number(inputA.value) + Number(inputB.value);操作看看
按一下查看字串與數字的差別。
動手修改
讓砲台移動更快,並把第一架敵機改成已消失。
展開參考答案
分別修改物件屬性。
cannon.speed = 450;
enemies[0].alive = false;