独学 プログラミング 入門 JavaScript ブロック崩し 解説 第5回

プログラミング学習

今一度、完成形をイメージしましょう

前回から、またぎまして(5)ではブロック部品の初期位置を引き続き解説させていただいます。1. 画面枠

2. ボール

3. ボールを跳ね返すボード

4. ボールが当たると消えるブロック

5. 部品の位置

6. ゲームの動き

もう一度、プログラミング全体をみてみよう

ソースコードは第0回 参照

跳ね返すボードに最初の位置を教える

const init = () => {
borad.x = canvas.width / 2 – borad.width / 2;
borad.y = canvas.height – borad.height;

まず、init という(今回は初期化)という変数を設定し

最初の場所を指定します。

左図がわかりやすいです。canvas.widthの半分

からborad.widthの半分の長さを引いた場所が

パドル(borad)の最初の位置と設定しています。

次に、canvas.height (高さ)

から borad.height(パドルの高さ)を引くと

左図の位置がパドルの初期位置と設定できます。

ボールに最初の位置を教える

ball.x = canvas.width / 2;
ball.y = canvas.height / 2 + 50;
ball.dx = ball.speed;
ball.dy = ball.speed;

ブロック崩しボール座標

ボールの最初の位置ですが

canvas.width を半分にした位置

高さは、canvas.heigthtを半分にして、その位置

から上に50pix 上の位置に設定します。

dx とdyはボールの移動に使いますのでここで

設定しておきます。

ブロックの幅を設定

block.width = canvas.width / level[0].length;

ブロック崩しブロック図解

まず、level[0].length配列の考え方なのですが

配列は level[ 行番号 , 列番号] という書き方になります。

0から始めるという規則も覚えておいてください。

説明するときに、よく例えられる表現がマンションの部屋番号です。

『1階の3号室』のように説明するとどの場所が、わかりやすいですね。 [1,3]と表現できます。

こんかいは、level[0].lengthといわれているので、0の行にはlength 何個部屋がありますか?

となります 『0,1,2,3,4,5』の6個という考え方です。

canvas.width 割る 個数(6)をするとブロック1つの幅が計算できるという設定になります。

次回は、ブロックを並べていく設定になります。

コメント

タイトルとURLをコピーしました