変数から[アクションを制限]

ホーム フォーラム CF2.5使用法全般 変数から[アクションを制限]

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

    お世話になっています。
    あるイベントの実行条件[アクションを制限]に計算を使い変数やカウンター値を参照させた場合、
    一旦その値を大きく(実行回数を少なく)したあと変数を元に戻すと、元通りに実行されません。

    サンプルを添付しました。
    これは基準値(3000)を設定し、
    その値ごと、その値/10ごと、その値/20ごとにそれぞれのカウンター値が増えていくものですが、
    一度規準値を大きくしてから戻すと、左(値ごと)は元通り実行されるのですが、値/10ごと、値/20ごとのイベントが実行されなくなります。

    直観的でなくバグのようにも思うのですが、仕様でしょうか?
    仕様でしたら対処法があれば教えてください。

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

    完全に止まるのではなく、しばらく待つと動き出すようです。推測ですが、条件式で代入しているカウンタの値が変わっても、内部タイマーのカウントは、1度変更前の時間を経なければ新たな時間間隔でのカウントがされない、ということではないでしょうか(公式見解が得られれば追記します)。似たようなタイマーのオブジェクトで、『Time X』というエクステンションがあります。こちらを使用したところ、式内の変数を変えると即適用されましたので、こちらを使用されるのがよろしいかと存じます。

    – サンプルプログラム
    https://blog.clickteam.jp/wp-content/uploads/2023/02/cf25_blog_2023-02-22_変数からアクションを制限TimeX版.zip

    但し、『アクションを制限』は、最初の瞬間にアクションが実行され、以後一定時間で、という感じで、通常のタイマー条件の一定時間とは異なるので、Time Xを用いて『アクションを制限』を同じ動作にするには少し工夫が必要かもしれません。

    #37054
    Midoriko
    参加者

    ASD様、お返事ありがとうございます。お世話になっております!

    そうですね‥‥おそらく変更前の値を待っているのだと思うのですが、
    値そのままだと動いて、値/10などがすぐに動かない、といった現象が不思議です。

    公式のほうにも問い合わせ下さり、またサンプルプログラムとエクステンションのご紹介ありがとうございます。
    最悪[アクションを制限]ではなく変数タイマーを使いタイミングや実行頻度を制御することもできると思いますので、TimeXとどちらが使いやすいか試してみます。
    スマホ向けビルドには対応していないみたいですね。

    もし進展がありましたらよろしくお願いします。

    #37056
    ASD
    キーマスター

    >値そのままだと動いて、値/10などがすぐに動かない
    いえ、値そのままのやつも同様に動きません。というよりも逆に300000へ変更後に、変更前の値3000(3秒)経過後にカウンタが1増えるのがわかると思います。それ以後は300000(300秒)経過ごとに増えるようになります。

    初期のブログ記事でも解説しておりますが、極力タイマーは使わず変数で制御することをお勧めします。処理落ちして動作が遅くなっているのに、タイマー(実時間)の経過間隔は変わらないので、処理に齟齬が発生します。処理速度とは無関係に実時間でタイミングを取りたい場合にのみ使用するようにして下さい。

    CF2.5のゲームは『タイマーベース』ではなく『フレームベース』で作ろう

    #37058
    Midoriko
    参加者

    お返事ありがとうございます、理解できました。
    わたしのほうで左の数値(値そのまま)だけ動き続けるケースがあったのですが、
    おそらく300000に変更したあと、3000のカウントが終わる前に元に戻していたからだと思います。(値/10などは速いため3000のカウントが終わっていた)

    また記事のほうありがとうございます。
    タイマーオブジェクトは仰る理由で一切使っていなかったのですが、
    [アクションを制限]もすべて実時間依存になるのでしょうか?
    「計算を使う」で変数を指定した場合も、変数タイマーではなく
    秒数の指定に変数を使うだけで挙動としては実時間を参照しているのでしょうか?

    #37062
    ASD
    キーマスター

    『アクションを制限』も実時間でカウントされています。タイマーオブジェクトにある『一定遅延後に発射イベント』も同様に実時間です。
    また、先に紹介しましたエクステンションの『Time X』も実時間ですのでお気を付けください。

    #37063
    Midoriko
    参加者

    お返事ありがとうございます。
    了解です、[アクションを制限]は普通に使っちゃっていましたね‥気を付けます。

    大変参考になりました。

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