提供: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 このクローンを削除する
ヒント
- 現在のマウス位置に向けてミサイルなどを発射する場合は、x座標を ()、y座標を () にするブロックのあとに、次のコードを追加する:
[マウスのポインター v] へ向ける
- スプライトの長さが10ピクセルより小さい場合は、「(10) 歩動かす」となっている場所を、スプライトの長さに変更する。こうしておかないと、スプライトが目標物をすりぬけていまうことがある。
- または、スプライトのコスチュームの長さを変更しておけば、正しく目標物を検知できる。