提供:Japanese Scratch-Wiki

このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する

このチュートリアルでは、ミサイルや弾丸のような物体を発射する方法を説明する。ここで扱うコードは、壁やターゲットに対する当たり判定は行うが、重力による放物線運動や風の影響などは考慮しておらず、発射時にかかる力以外は反映されない。

また、すべてのコードでスペースキーが押されたタイミングで発射しているが、これはもちろん好きな真偽ブロックで置き換えられる。

スプライトを2つ使用。クローンを使用しない

以下のスクリプトでは、2つのスプライトを使用する。1つは、プレイヤースプライト、もう1つはミサイルなどの発射スプライトである。クローンは使用しない。

連射なし

このスクリプト では、1回発射したあと、次に発射するために、一度トリガーボタン (ここではスペースキー) から手を離す必要がある。このため、連続的に発射するには、キーを連打しなければならない。


@greenFlag が押されたとき::events hat //  プレイヤースプライトに作成
ずっと 
  <[スペース v] キーが押された> まで待つ
  [発射 v] を送って待つ
  <<[スペース v] キーが押された> ではない> まで待つ //  ボタンを1回押したとき、1度だけ発射
end

[発射 v] を受け取ったとき // 発射スプライトに作成
[プレイヤー v] へ行く // プレイヤーの場所からスタート
表示する
<<[目標とする敵 v] に触れた> または <[端 v] に触れた>> まで繰り返す // 何かにぶつかって進むのが妨げられるまで動く
  (10) 歩動かす
end 
隠す

連射あり

次のスクリプトでは、トリガーボタン (スペースキー) を押し続けている間中、連続して発射スプライトが発射される:

@greenFlag が押されたとき::events hat // プレイヤースプライトに作成
ずっと 
  <[スペース v] キーが押された> まで待つ
  [発射 v] を送って待つ
  (0.1) 秒待つ //  トリガーから手が離れるのを待たずに、指定した秒数を空けて連続的に発射する
end

[発射 v] を受け取ったとき // 発射スプライトに作成
[プレイヤー v] へ行く
表示する
<<[目標とする敵 v] に触れた> または <[端 v] に触れた>> まで繰り返す 
  (10) 歩動かす
end
隠す

スプライトを2つ使用。クローンを利用

この方法は、先ほどの方法とよくにているが、クローンを使っているので、画面に同時に1つ以上の弾を表示できる。こちらでも、まずはプレイヤースプライトと発射スプライトを用意しておこう。

連射なし

@greenFlag が押されたとき::events hat //  プレイヤースプライトに作成
ずっと 
  <[スペース v] キーが押された> まで待つ
  [弾 v] のクローンを作る //  発射スプライトのクローンを作成
  <<[スペース v] キーが押された> ではない> まで待つ
end

クローンされたとき //  発射スプライト
<<[目標とする敵 v] に触れた> または <[端 v] に触れた>> まで繰り返す 
  (10) 歩動かす
end
このクローンを削除する

連射あり

@greenFlag が押されたとき::events hat //  プレイヤースプライト
ずっと 
  <[スペース v] キーが押された> まで待つ
  [弾 v] のクローンを作る
  (0.1) 秒待つ //  連射する間隔を指定する
end

クローンされたとき //  発射スプライトに作成
<<[目標とする敵 v] に触れた> または <[端 v] に触れた>> まで繰り返す 
  (10) 歩動かす
end
このクローンを削除する

スプライトを1つだけ使用。クローンを利用

次の方法では、スプライトを1つ (「プレイヤー」「発射物」の2つのコスチュームを用意) しか使わない。

連射なし

@greenFlag が押されたとき::events hat
コスチュームを [プレイヤー v] にする //  親スプライトの見た目をプレイヤーにしておく
ずっと 
  <[スペース v] キーが押された> まで待つ
  [自分自身 v] のクローンを作る
  <<[スペース v] キーが押された> ではない> まで待つ
end

クローンされたとき
コスチュームを [弾 v] にする //  クローンの見た目を発射物にする
<<[目標とする敵 v] に触れた> または <[端 v] に触れた>> まで繰り返す 
  (10) 歩動かす
end
このクローンを削除する


連射あり

@greenFlag が押されたとき::events hat
コスチュームを [プレイヤー v] にする //  親スプライトの見た目をプレイヤーにしておく
ずっと 
  <[スペース v] キーが押された> まで待つ
  [自分自身 v] のクローンを作る
  (0.1) 秒待つ  //  連射する間隔を指定する
end

クローンされたとき
コスチュームを [弾 v] にする //  クローンの見た目を発射物にする
<<[目標とする敵 v] に触れた> または <[端 v] に触れた>> まで繰り返す 
  (10) 歩動かす
end
このクローンを削除する

ヒント

[マウスのポインター v] へ向ける
  • スプライトの長さが10ピクセルより小さい場合は、「(10) 歩動かす」となっている場所を、スプライトの長さに変更する。こうしておかないと、スプライトが目標物をすりぬけていまうことがある。
    • または、スプライトのコスチュームの長さを変更しておけば、正しく目標物を検知できる。
Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。