フィールドをつくる

今回はC#でブロック崩しをつくります。まずはフィールドをつくりましょう。

フィールドの幅と高さは450×450とします。

フィールドを描画するにはForm.OnPaintをオーバーライドしてそこでおこないます。

DrawFieldメソッドは以下のようなものです。

ブロックを描画する

ブロックは15列で8行とします。また同じ色ではなく複数色のブロックをつくります。ブロックはDrawBlocksメソッドで描画します。

そのまえにブロックが存在するのかどうかを管理するための配列をつくります。そしてゲームが開始されたときであればすべてのブロックは壊されていない状態なのでClearAllBreakedメソッドですべてfalseにします(あとで気がついたけど isBreakedはis + breakの過去分詞型のつもりだったけれども実はbrokenだった)。

描画処理部分です。現状、フィールドとブロックしかつくっていないのでこれだけです。

DrawBlocksメソッドは壊されていないブロックを調べて、それを描画するためのDrawBlockメソッドを呼び出します。

GetBlockRectメソッドは ブロックの場所(colum,row)を指定してブロックが描画されるべき矩形を返します。ブロックの幅はフィールドの幅と横にならべるブロックの数から求めることができます。このときFIELD_WIDTH / BLOCK_COLUM_COUNTが割り切れないとフィールドの右側に空間ができてしまいかっこ悪くなってしまいます。

それから二元配列isBreakedはブロックがすでに壊されているかどうかの情報を管理するためのものです。壊されているブロックであれば表示してはならないし、存在するものとして扱ってはなりません。

最初はすべてのブロックが存在するわけですからゲーム開始時(ゲームオーバーになってもう一度プレイするとき)にはisBreakedはすべてクリアする必要があります。

バー(パドル)を表示する

ブロック崩しでボールを跳ね返すためのものです。パドルというらしいですが・・・。

バーはDrawBarメソッドで表示します。表示させる場所はフィールド変数barPosで管理します。

バーは最初は真ん中に

バーはゲーム開始時は真ん中にあったほうがいいですね。

あとはボールの動きとブロックが壊れる動作を実装すれば大部分は完成です。