カウントが維持されるのは破壊後に再カウントしていないからだと思われます
Foreachは破壊されたオブジェクトは参照しないので
破壊された後にもカウントするフラグを立ててやれば良いかと思います
ただオブジェクトの破壊は 指示したその場で破壊されるのではなく
そのフレームの一番最後に実行されるという仕様があるので
破壊 → 破壊後のカウント を同フレーム内で行う事は出来ません
カウントフラグを立てるタイミングをズラす必要があります
一番簡単なのは変数でウェイトを入れてやる方法でしょうか
変数を使いたくない場合は
カウントするイベントより下に置く事で次のフレームにフラグを回収させます
ここで注意が必要なのは カウントするイベントより下に置いた場合でも
条件が即時実行(緑文字)だったりすると破壊前にカウントされる事になります
これは他の条件を上に加えて緑文字を赤文字にすると防げます
*対象数が少なかったり負荷が気にならないのであれば
カウントを常に実行させる事でこれらの対策は不要です
サンプル(上)にウェイトを使ったやりかた
サンプル(下)にイベント位置で対策したやり方を加えました
オブジェクトを右クリックすると破壊されます
この件に限らずどこで破壊命令しても実際に破壊されるのは一番最後
という仕様を知っておくと事前に色々な不具合を回避していけると思います
Attachments:
You must be
logged in to view attached files.