チュートリアル: 「0からはじめるACTION GAME MAKER」第三章

「弾」のスクリプトを設定しよう。

壁判定(CollisionShape2D)はちょうどよいサイズなので変更する必要はなさそうです。基本の設定が終わったのでスクリプトを作りましょう。

「移動」中に「敵にあたる」「タイルにあたる」「カメラの外にでる」と消滅するということが実現できればよさそうです。つまり、必要なステートは「移動」と「消滅」の2つだけです。早速つくっていきましょう。

スクリプトのアタッチ

1. Bullet(GameObject)ノードを選択します。

2. シーンウィンドウ右上の:scroll:+(スクリプトをアタッチ)ボタンをクリックします。

3. 特に変更はなく作成を押し、bullet.vsを作成します。

ステートの設定「移動」

デフォルトのステート001を再利用して「移動」ステートを作ります。先述の通り、移動の処理は「弾を発射する側」で行うためアクションの設定は特にいりません。

1. ステート001を選択します。

2. インスペクターウィンドウでタイトルを「移動」に変更します。

「消滅」ステートを作る。

1. 移動の右側で右クリックを行い「ステートを追加」します。

2. 新たにできた「ステート001」を選択しインスペクターでタイトルを「消滅」にします。

3. 引き続きインスペクターで「+実行アクションを追加」をクリックします。

4. 実行アクション「自身を消滅させる」を選択し、「追加」します。

5. これでこのステートになるとこの弾が消滅するようになりました。

「移動」から「消滅」のリンクをつくる

「移動」中に敵にあたるか、タイルにあたるか、カメラの外にでると「消滅」するようにしましょう。この場合、条件は「3つ」もあることになりますが、「AND(かつ)」と「OR(または)」で3つをつなぐことで1つのリンクで複数の条件を扱うことができます。

この場合は、「敵にあたる」「OR(または)」「タイルにあたる」「OR(または)」「カメラの外にでる」とつなぐことで3つの条件を扱うことができます。

1. 「移動」ステートを右クリックしてリンクを追加します。

2. 「消滅」ステートをクリックしてリンクをつなぎます。

3. 作成されたリンクを選択し、インスペクターで「+その他条件の追加」します。

4. 「オブジェクトのあたり判定と接触」を選択します。

5. すべての方向をチェックし、「追加」ボタンを押しましょう。

6. 再度、「+その他条件の追加」をクリックします。

7. 次は「タイルと接触」条件を選択します。

8. 再び、すべての方向をチェックし、前の条件との論理条件を「OR」として「追加」ボタンを押します。

9. 3つ目の条件を「+その他条件の追加」で追加します。

10. 条件をスクロールして、その他にある「カメラの範囲外になった」を選択します。

11. データタイプ(判定対象オブジェクト)を「自分自身」前の条件との論理条件を「OR」にして追加します。

12. その他の条件が以下のようになっているか確認してください。AND/ORが違っている場合は、AND/ORのアイコンをクリックすることで変更することができます。

補足:オブジェクトのあたり判定との接触は「AND」で良いのか?

AND/ORは**「前の」**条件との論理条件との名前の通り、一段上の条件に対して判定されます。「オブジェクトのあたり判定との接触」は一番上にあり、前の条件がないためANDでもORでもどちらでも大丈夫です。ただし、順番を入れ替え2段目以降にしてしまうとANDで動作してしまうため、ORにしておくと安心ではあります。

これで弾の設定は完了です。「シーンを保存」しておきましょう。