敵をPMOで制御する際の条件について

ホーム フォーラム CF2.5使用法全般 敵をPMOで制御する際の条件について

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

    お世話になっています。
    PMOで敵キャラクターを制御する際の[Test for obstacle overlap]について質問です。

    [敵]の変数Aに通し番号を入れた上で高速ループを[敵]の数だけ回し、

     [ループ名]実行中
     [PMO] 変数A = Loopindex([ループ名])
     [敵] 変数A = Loopindex([ループ名])

    でPMOをセットしています。
    このとき

     (PMO) Test for obstacle overlap
     [ループ名]実行中
     [敵] 変数A = Loopindex([ループ名])
     [PMO] 変数A = Loopindex([ループ名])
     [敵] と [足場] が衝突

    という条件では [足場] をすり抜けてしまいます。
     (PMO) Test for obstacle overlap
     [ループ名]実行中
    の両方が即時条件扱い(?)のために適用されないのかなと
    思っていますが、その理由を教えて下さい。また、
    変数=Loopindexを条件にしつつ[Test for obstacle overlap]を
    適用する方法もあればぜひお願いします。

    現在は単に
     (PMO) Test for obstacle overlap
     [敵] と [足場] が衝突
    で適用しており、敵キャラクターをPMOで制御するサンプルでも
    そうなっていますが、一部の動作が不安定になるので
    (PMOの1ドット上昇が全体に発生してしまう)
    できれば上記の形にしたいです。

    なお、PMOで制御している他の動作(敵キャラの左右移動やジャンプなど)は
     [ループ名]実行中
     [敵] 変数A = Loopindex([ループ名])
     [PMO] 変数A = Loopindex([ループ名])
    の条件を入れた上で正常に(個別に)動作しています。

    よろしくお願いします。

    #33277
    ASD
    キーマスター

    まず、参照されているサンプルは、ForEachループが存在していなかったMMF2時代に組まれた物なので『高速ループ+通し番号』の方法が使われていますが、CF2.5においてはForEachループを使用する方がはるかに処理が軽いので、そちらを使用してください。

    『Platform Movement object(PMO)』で制御するオブジェクトが地面に接地する際にはPMOの『Test for obstacle overlap』の条件が必要です。この条件は条件群の先頭に置かなければ動作しません。『Test for obstacle overlap』条件は即時条件(緑色になる条件)で、これ自体がループ的動作をします。よってキャラオブジェクト本体をメイン(親)として制御する他のイベントとは逆に、PMOをメインとして、『本体のPMO固定値を入れた変数=PMOの固定値』で紐付けができます。本体で回しているForEachの条件は不要です。

    – サンプルプログラム
    https://blog.clickteam.jp/wp-content/uploads/2019/09/cf25_blog_2019-09-14_enemy_pmo.zip

    本家フォーラムのこちらのサンプルも参考にしてください。

    – Easy PMO Enemy Movement
    https://community.clickteam.com/threads/104052-Easy-PMO-Enemy-Movement

    #33278
    Midoriko
    参加者

    迅速なお返事ありがとございました。
    ご回答、サンプルともたいへん分かりやすく、参考になりました。
    各オブジェクトにつき‥が無い時代もあったんですね。
    そちらのほうが処理が軽いということで、本当にありがたいです。

    本家フォーラムのスーパーマリオのサンプルも確認させて頂きました。
    わたしはゲームの内容上アクティブオブジェクトを障害物に設定しているので
    衝突マスクを使えないのが残念ですが(この機能も初めて知りました)、
    PMOの挙動についてはこちらも非常に参考になりました。

    頂いたサンプルを元に試してみます。
    ありがとうございました。

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