提供: Japanese Scratch-Wiki

(英語版からの翻訳)
 
(ブロック名の変更 (bot))
 
(3人の利用者による、間の5版が非表示)
1行目: 1行目:
このチュートリアルでは、ミサイルや弾丸のような物体を発射する方法を説明する。ここで扱うコードは、壁やターゲットに対する当たり判定は行うが、重力による放物線運動や風の影響などは考慮しておらず、発射時にかかる力以外は反映されない。
+
{{ひらがなヘッダ}}このチュートリアルでは、ミサイルや弾丸のような物体を発射する方法を説明する。ここで扱うコードは、壁やターゲットに対する当たり判定は行うが、重力による放物線運動や風の影響などは考慮しておらず、発射時にかかる力以外は反映されない。
  
 
また、すべてのコードでスペースキーが押されたタイミングで発射しているが、これはもちろん好きな[[真偽ブロック]]で置き換えられる。
 
また、すべてのコードでスペースキーが押されたタイミングで発射しているが、これはもちろん好きな[[真偽ブロック]]で置き換えられる。
11行目: 11行目:
 
<scratchblocks>
 
<scratchblocks>
  
@ がクリックされたとき //  プレイヤースプライトに作成
+
@greenFlag が押されたとき::events hat //  プレイヤースプライトに作成
 
ずっと  
 
ずっと  
 
   <[スペース v] キーが押された> まで待つ
 
   <[スペース v] キーが押された> まで待つ
31行目: 31行目:
  
 
<scratchblocks>
 
<scratchblocks>
@ がクリックされたとき // プレイヤースプライトに作成
+
@greenFlag が押されたとき::events hat // プレイヤースプライトに作成
 
ずっと  
 
ずっと  
 
   <[スペース v] キーが押された> まで待つ
 
   <[スペース v] キーが押された> まで待つ
53行目: 53行目:
  
 
<scratchblocks>
 
<scratchblocks>
@ がクリックされたとき //  プレイヤースプライトに作成
+
@greenFlag が押されたとき::events hat //  プレイヤースプライトに作成
 
ずっと  
 
ずっと  
 
   <[スペース v] キーが押された> まで待つ
 
   <[スペース v] キーが押された> まで待つ
70行目: 70行目:
  
 
<scratchblocks>
 
<scratchblocks>
@ がクリックされたとき //  プレイヤースプライト
+
@greenFlag が押されたとき::events hat //  プレイヤースプライト
 
ずっと  
 
ずっと  
 
   <[スペース v] キーが押された> まで待つ
 
   <[スペース v] キーが押された> まで待つ
89行目: 89行目:
 
===連射なし===
 
===連射なし===
 
<scratchblocks>
 
<scratchblocks>
@ がクリックされたとき
+
@greenFlag が押されたとき::events hat
 
コスチュームを [プレイヤー v] にする //  親スプライトの見た目をプレイヤーにしておく
 
コスチュームを [プレイヤー v] にする //  親スプライトの見た目をプレイヤーにしておく
 
ずっと  
 
ずっと  
108行目: 108行目:
 
===連射あり===
 
===連射あり===
 
<scratchblocks>
 
<scratchblocks>
@ がクリックされたとき
+
@greenFlag が押されたとき::events hat
 
コスチュームを [プレイヤー v] にする //  親スプライトの見た目をプレイヤーにしておく
 
コスチュームを [プレイヤー v] にする //  親スプライトの見た目をプレイヤーにしておく
 
ずっと  
 
ずっと  
125行目: 125行目:
  
 
== ヒント ==
 
== ヒント ==
* 現在のマウス位置に向けてミサイルなどを発射する場合は、[[X座標を () に、y座標を () にする (ブロック)|x座標を ()、y座標を () にする]]ブロックのあとに、次のコードを追加する:
+
* 現在のマウス位置に向けてミサイルなどを発射する場合は、[[X座標を () 、y座標を () にする (ブロック)|x座標を ()、y座標を () にする]]ブロックのあとに、次のコードを追加する:
 
<scratchblocks>
 
<scratchblocks>
 
[マウスのポインター v] へ向ける
 
[マウスのポインター v] へ向ける
133行目: 133行目:
  
 
[[カテゴリ:スクリプトチュートリアル]]
 
[[カテゴリ:スクリプトチュートリアル]]
[[en:Editing Shooting Projectiles]]
+
[[en:Shooting_Projectiles]]

2019年1月28日 (月) 13:15時点における最新版

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

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

スプライトを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) 歩動かす」となっている場所を、スプライトの長さに変更する。こうしておかないと、スプライトが目標物をすりぬけていまうことがある。
    • または、スプライトのコスチュームの長さを変更しておけば、正しく目標物を検知できる。