【ハウツー】
iPhoneゲーム自作工房7 - ブロック崩しゲームを創る
1 ブロック崩しゲームの概要と初期設定
2008/08/15
ブロック崩しを作る
今回はブロック崩しを作成します。前回作成した「ひとりテニス」のプログラムにブロック関係の処理を追加するだけでできます。そこで、前回とは異なる部分のみ解説を行います。これ以外の部分の処理に関しては前回の記事を参照してください。ゲームのルールですが、パドルを操作しボールを使って画面上部にあるブロックを壊すだけです。全てのブロックを壊した場合には、新たにブロックを作成しゲームを継続します。全部ブロックを破壊してもゲームは終わらず、ひたすらブロックを破壊しつづけることになります。ボールが画面下に落下してしまうとゲームオーバーとなります。持ち玉の数は1つだけでストックはありません。
初期設定
ゲーム開始前には初期設定を行う必要があります。追加したのはブロックに関する変数です。ブロックの有無を示すフラグ変数blockFlag、ブロックの座標を示すblockX, blockY、ブロックの幅を示すblockW, blockH、ブロックの総数と壊したブロックの数をカウントする変数を用意します。
ちなみにオブジェクト指向の場合には、このようにグローバル変数で定義するのではなくブロックオブジェクト内に、それぞれの情報をプロパティとして格納します。
初期設定値は自由に変更できますが、ボールの移動量はボールのサイズより大きくしないでください。ボールがブロックをすり抜けたり、パドルを突き抜けてしまうためです。また、ボールのサイズを大きくすると、ごっそりとブロックが破壊され、あっという間にクリアしてしまいます。ゲームとしてほどほどに遊べるサイズにしておくのがよいでしょう。
コード01
var ballX = 10; // ボールのX座標
var ballY = 10; // ボールのY座標
var ballW = 8; // ボールの横幅
var ballH = 8; // ボールの縦幅
var dx = 6; // ボールの横の移動量
var dy = 4; // ボールの縦の移動量
var padX = 1; // パドルのX座標
var padY = 280; // パドルのY座標
var padW = 48; // パドルの横幅
var padH = 16; // パドルの縦幅
var blockFlag = new Array(); // ブロックの有無を示すフラグ
var blockX = new Array(); // ブロックのX座標
var blockY = new Array(); // ブロックのY座標
var blockW = 24; // ブロックの横幅
var blockH = 8; // ブロックの縦幅
var total; // ブロックの総数
var count; // 消したブロックをカウントするための変数
ヘッドライン
- 【レポート】今週の秋葉原情報 - TWO TOPがリニューアルオープン、ついに2TB HDDの1万円割れも[01:07 3/22]自作
- 【レポート】5分でわかる今週のPC注目記事 - 3月14日〜3月20日[18:05 3/21]
- すべての旧来メディアはiPadに集まる - News Corpのマードック氏の予言[17:51 3/20]アップル
- Apple訴訟を受け、HTCがGoogleと共同で反訴を計画か - NYT[17:39 3/20]アップル
- iPad発売を前に、Appleが事業者とのコンテンツ提供交渉で苦戦 - WSJ[11:27 3/20]アップル
- 一度の再起動でOSやデータを完全保護「HD革命/WinProtector Ver.3」[21:44 3/19]ユーティリティ活用術
- ASUS、防塵ファン装備のRadeon HD 5670カード「EAH5670/DI/512MD5」[21:23 3/19]自作
- MSI、高性能クーラー「Twin Frozr II」装備のRadeon HD 5830カード[21:12 3/19]自作
- 【コラム】3Dグラフィックス・マニアックス 第91回 人工知性でコンテンツを生成するプロシージャル技術(15)[20:48 3/19]自作
- Apple iPad、オンライン+店舗合わせた1週間の予約累計台数は40万台?[20:17 3/19]アップル












