Scratch リミックスで学ぶ:もぐらたたきゲーム リストとクローンの使い方

Scratch リミックスで学ぶ:もぐらたたきゲーム リストとクローンの使い方

もぐらたたきゲームでは、複数のスプライトが必要です。 スプライトのコピーでも良いですが、冗長なコードはバグを生む要因になるため、できるだけ簡潔なコードで作成したほうが良いです。クローン機能とリスト機能を使うと、少ないコードで作ることが出来ます。

今回作成するプロジェクト

「もぐらたたき remix1」はScratchホームページで公開していますので、プログラム全体はそちらのページでご確認下さい。主要部分について、以降説明します。

クローン作成のメインのコード

全体のコードが画面内に収まらないため、ブロックを定義して分割します。コードは背景で組みます。旗印が押されたあとに「隠す」を入れているのは、クローンを全て作成したあと、オリジナルのスプライトが最後に作成したクローンと同じ座標に残ります。そのため、クローンを作成する前に、オリジナルのスプライトを隠しておきます。クローンを作ったあと、「readyを送る」を実行します。このメッセージを受けて、モグラスプライトのゲーム動作が開始されます。

背景のコード1

クローンの座標リストを作る

 X座標リストとY座標リスト(全てのスプライト用)に、これから作成するクローンの座標を入れます。座標リストの番号は1から始まるため、変数idの初期値を1にします。変数colは、クローンを作成する列番号なので、初期値を0にします。作成したいクローンは、3行×3列なので、行と列の繰り返し変え数をそれぞれ3回として、コードを組みます。
 まずは、内側の繰り返し部分について説明します。クローンの作成順序は、上段左→上段中→上段右→中段左→中段中→中段右→下段左→下段中→下段右とします。したがって、1番目(id=1)の座標は(6, 140)、2番目(id=2)の座標は(171, 140)、というようにそれぞれの座標リストに値を挿入します。1つ挿入するたびに、idとrowを1ずつ変えます。上段のリスト挿入が完了すると(3回繰り返し終わると)、一旦この繰り返しコードを抜けます。
 次に、外側の 繰り返し部分について説明します。 1行(1段)分のクローン作成が完了数すると、次の行(段)を作成するため、変数colを1ずつ変えます。左から順番にリストを作りたいので、繰り返しコードの冒頭に「rowを0にする」を入れます。これを3回繰り返すことで、9個分の座標リスト作成が完了します。

背景のコード2

クローンを作る

 クローンは9個作るので9回繰り返します。単純に9回繰り返すとしても良いですが、「(X座標リストの長さ)回繰り返す」とすることで、もし4×4のクローンを作成するコードに変更しても、このブロックは変更する必要がなくなります。繰り返し分の中は、「ホール」「モグラ」「マスク」のクローン作成を行っています。スプライトの重ね合わせの順序があるため、この順番になっています。
 「F_ホール作成完了」は、ホール(hole-1)のスプライトのコードで、クローンを作成完了するまでの間、次の動作に進まないようにするための変数です。このように、0と1しかとらないような変数は、フラグと呼ぶこともあります。もし作成完了まで待たなければ、クローン作成中にid値をどんどん進めてしまい、作成した座標にクローンができない可能性があります。同様に、モグラとマスクのクローンも作成します。

背景のコード3

クローンの座標を移動する

背景のコードでクローン作成されたスプライトを、座標リストのいちに動かします。移動が完了したら、変数F_**を1にします。すると、 背景コードで待つ動作をしていた部分から進みます。

Scratchカテゴリの最新記事