提供: Japanese Scratch-Wiki

(ヒント)
(ボットによる: 「en:Editing Shooting Projectiles」を除去)
133行目: 133行目:
  
 
[[カテゴリ:スクリプトチュートリアル]]
 
[[カテゴリ:スクリプトチュートリアル]]
[[en:Editing Shooting Projectiles]]
 

2017年9月5日 (火) 10:07時点における版

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

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

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

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

連射なし

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


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

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

連射あり

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

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

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

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

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

連射なし

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

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

連射あり

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

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

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

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

連射なし

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

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


連射あり

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

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

ヒント

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