フラグが有効になっているオブジェクトをカウントする方法

ホーム フォーラム CF2.5使用法全般 フラグが有効になっているオブジェクトをカウントする方法

5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #15860
    ハイタツ
    参加者

    お世話になってます。
    シンプルなんですが複数存在するオブジェクトの内、フラグが有効になっているオブジェクトの数をカウントすることは可能でしょうか?

    よろしくお願いします。

    #15861
    ラクレス
    参加者

    対象のオブジェクトにForeachを回し
    フラグが有効の場合+1 とするのが一般的かと思います

    複数のオブジェクトというのが同名オブジェクトの複製ではなく
    名前の異なるオブジェクトの事でしたら
    それらを同じオブジェクトグループに設定しグループに対してForeachを回します

    サンプルを作成しましたので参考にして頂ければと思います

    Attachments:
    You must be logged in to view attached files.
    #15863
    ハイタツ
    参加者

    >ラクレスさん

    ありがとうございます!!
    思いつきませんでした。
    サンプル完璧です。

    #15885
    ハイタツ
    参加者

    すいません。
    破壊された場合を想定していませんでしたので、もしよろしければ引き続きご教授願います。

    今回のサンプル大変参考になったのですが、オブジェクトが破壊されてもカウントのみが残ってしまいます。
    「存在している」オブジェクトのフラグのみをカウントしたい場合、良い方法はありますか?

    #15909
    ラクレス
    参加者

    カウントが維持されるのは破壊後に再カウントしていないからだと思われます
    Foreachは破壊されたオブジェクトは参照しないので
    破壊された後にもカウントするフラグを立ててやれば良いかと思います

    ただオブジェクトの破壊は 指示したその場で破壊されるのではなく
    そのフレームの一番最後に実行されるという仕様があるので
    破壊 → 破壊後のカウント を同フレーム内で行う事は出来ません
    カウントフラグを立てるタイミングをズラす必要があります
    一番簡単なのは変数でウェイトを入れてやる方法でしょうか

    変数を使いたくない場合は
    カウントするイベントより下に置く事で次のフレームにフラグを回収させます
    ここで注意が必要なのは カウントするイベントより下に置いた場合でも
    条件が即時実行(緑文字)だったりすると破壊前にカウントされる事になります
    これは他の条件を上に加えて緑文字を赤文字にすると防げます

    *対象数が少なかったり負荷が気にならないのであれば
    カウントを常に実行させる事でこれらの対策は不要です

    サンプル(上)にウェイトを使ったやりかた
    サンプル(下)にイベント位置で対策したやり方を加えました
    オブジェクトを右クリックすると破壊されます

    この件に限らずどこで破壊命令しても実際に破壊されるのは一番最後
    という仕様を知っておくと事前に色々な不具合を回避していけると思います

    Attachments:
    You must be logged in to view attached files.
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • このトピックに返信するにはログインが必要です。