ループ処理を使った判定について

ホーム フォーラム CF2.5使用法全般 ループ処理を使った判定について

  • このトピックには2件の返信、2人の参加者があり、最後にgaramにより5年、 8ヶ月前に更新されました。
3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #15522
    garam
    参加者

    今作っているゲームで以下のようなものを作りたいのですが、攻撃判定の部分のみ上手くいかないので、解決方法があればご教授頂けますか。

    1:同一の敵オブジェクトを複数個生成する
    2:呼び出した敵オブジェクトは違う動き(厳密には異なる位置への移動)を始める
    3:敵オブジェクト側に攻撃開始する範囲を決めておき、自機が敵オブジェクトに近づいた場合、範囲に近づいた敵オブジェクトのみ攻撃する
    4:攻撃開始範囲から自機が離れた場合、敵オブジェクトは攻撃を止め、移動を始める

    ループを使った処理で1、2は上手くいっているのですが、3が範囲内に入ると、範囲外にいる全ての敵オブジェクトが攻撃を始めてしまいます。

    4に関しては、攻撃を始めた全ての敵オブジェクトの範囲から脱すると、全オブジェクトが攻撃を止めます。

    テストで作ったファイルも添付致します。
    どうか解決方法をお願いいたします。

    Attachments:
    You must be logged in to view attached files.
    #15532
    ASD
    キーマスター

    >>garamさん
    イベント(グループ)の有効・無効処理は、『そのイベントそのものが、フレームに在るか無いか』を切り替えるものなので、ループ処理を回していても全てのオブジェクトが影響を受けます(オブジェクトイベントに記述して、そのオブジェクトが複数居たとしても、個々のオブジェクトで別個にイベントが動いているわけではなく、イベント自体は1個です。)。

    テストファイルでは、敵の攻撃動作のグループの有効・無効を切り替えていて、且つ『そのグループが有効の時』が条件になっているため、1つの敵でグループが有効になると、別のオブジェクトの攻撃動作グループも有効になり、『グループが有効の時』が条件により他の全ての敵オブジェクトも攻撃動作に移ってしまっています。

    単一でしか動作しないような処理ではイベント(グループ)の有効・無効は使えますが、今回のような、『そのイベントが発動すべき敵とそうでない敵がいる』場合には使えません。このような場合はフラグを操作して、そのフラグを条件にすることで、フラグがONの敵のみが攻撃動作をしてくれるようになります。

    – サンプルプログラム
    https://blog.clickteam.jp/wp-content/uploads/2018/08/cf25_blog_2018-08-19_test-enemy-attack.zip

    #15533
    garam
    参加者

    想定していた動作にする事ができました!
    ご教授ありがとうございます。

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • このトピックに返信するにはログインが必要です。