• Skip to main content
  • Skip to primary sidebar
  • Skip to footer
  • HOME
  • Arduino
    • Arduino初心者編
    • Arduino基礎編
    • Arduino応用編
    • Arduino実践編
  • Raspberry Pi
  • microbit
  • XBee
  • Scratch
  • Contact Us
  • Privacy Policy

STEMSHIP

ものづくりを通して、科学を学ぼう!

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

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

2020年2月5日 by STEMSHIP コメントを書く

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

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

「もぐらたたき 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にします。すると、 背景コードで待つ動作をしていた部分から進みます。

各スプライトのクローン移動コード

Filed Under: Scratch 関連タグ:クローン, リスト

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください。

最初のサイドバー

CONTACT US

  • Facebook
  • Twitter
  • Youtube

More to See

Arduinoベースのセンサノード:XBeeデータ収集ノードの製作

2021年9月27日 By STEMSHIP

Arduinoベースのセンサノード:Arduinoを使った温度センサの作製

2021年9月21日 By STEMSHIP

XBeeモジュールとBMP280センサを使用してデータ収集する

2021年5月31日 By STEMSHIP

XBeeモジュールでMicroPythonを使ってセンサを読み取る

2021年5月24日 By STEMSHIP

XBeeモジュールでセンサを読み取る:センサノードの設定と測定

2021年5月17日 By STEMSHIP

カテゴリー

  • Arduino (44)
    • Arduino初心者編 (15)
    • Arduino基礎編 (11)
    • Arduino実践編 (4)
    • Arduino応用編 (11)
    • Arduino番外編 (3)
  • MakeyMakey (1)
  • microbit (11)
  • Raspberry Pi (13)
  • Scratch (6)
  • STEM教育 (5)
  • XBee (15)
  • ものづくり教育 (2)
  • 子供の教育 (2)
  • 科学 (6)
  • 算数 (5)

Tags

BLE DCモータ EEPROM ELEGOO ESP32 ESP8266 IoT LCD LED makeymakey MQTT Node-RED scratch STEM教育 WiFi XBee アニメーション オンラインゲーム カメラ クローン ゲーム コスチュームの変更 サーボモータ ステッピングモータ ステートマシン スピーカ タイマー ピンポン ブロック定義 ペン ライントレース ラジコン リスト 分数 割り込み 実験 工作 幼児 当たり判定 温度センサ 無線通信 物理 角度制御 重力 音楽

Footer

最近の投稿

  • Arduinoベースのセンサノード:スケッチ(プログラム)の作製
  • Arduinoベースのセンサノード:XBeeデータ収集ノードの製作
  • Arduinoベースのセンサノード:Arduinoを使った温度センサの作製
  • XBeeモジュールとBMP280センサを使用してデータ収集する
  • XBeeモジュールでMicroPythonを使ってセンサを読み取る

タグ

BLE DCモータ EEPROM ELEGOO ESP32 ESP8266 IoT LCD LED makeymakey MQTT Node-RED scratch STEM教育 WiFi XBee アニメーション オンラインゲーム カメラ クローン ゲーム コスチュームの変更 サーボモータ ステッピングモータ ステートマシン スピーカ タイマー ピンポン ブロック定義 ペン ライントレース ラジコン リスト 分数 割り込み 実験 工作 幼児 当たり判定 温度センサ 無線通信 物理 角度制御 重力 音楽

Search

2025年5月
月 火 水 木 金 土 日
 1234
567891011
12131415161718
19202122232425
262728293031  
« 10月    

Copyright © 2025 · STEMSHIP.COM