クリックを条件としたイベント実行のタイミングについて

ホーム フォーラム CF2.5使用法全般 クリックを条件としたイベント実行のタイミングについて

3件の投稿を表示中 - 1 - 3件目 (全3件中)
  • 投稿者
    投稿
  • #15723
    ラクレス
    参加者

    いつも大変お世話になっております

    クリックやタッチを条件にしたイベントが実行されるタイミングについてですが
    例えば

    1.フラグAが有効の時:カウンターを+1
    2.クリックしたとき:フラグAを有効
    3.フラグAが有効の時:フラグAを無効

    という並びでイベントを書いた場合
    2.のクリックで有効にしたフラグが直後に3.で無効にされてしまうので
    1.のカウンターを+1は実行されないと思うのですが実際には実行されます
    (2→3 で落ち着くはずが 2→1→3 と実行されてしまう)

    クリックを条件としたイベントはフレームの最後尾に実行されるという事なのでしょうか
    仕様なのか修正対象になるのかでイベントの組み方が変わってくるので把握しておきたいです
    サンプルを添付しますのでご確認いただければと思います
    宜しくお願いいたします

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

    >>ラクレスさん
    >クリックを条件としたイベントはフレームの最後尾に実行されるという事なのでしょうか

    逆です。提示されたデータで設定されているクリック条件は、他の条件とは別の色で表示されていますが、これは『即時条件』と呼びまして、通常条件のイベントよりも優先して実行される性質があります。解りやすいのは『フレームが開始』の条件で、これを含むイベントはエディタ内のどこに記述されていてもまず真っ先に実行されます。マウスクリック条件も同様で、ユーザーがマウスクリックを行うと、まずこの条件のイベントが発動し、続いて他の通常条件のイベントに移ります。従って順番としては、

    1.クリックしたとき:フラグAを有効
    2.フラグAが有効の時:カウンターを+1
    3.フラグAが有効の時:フラグAを無効

    となり、カウンターは増える結果となります。

    ちなみに即時条件はループ的な動作もするため、例えば『オブジェクトが衝突』で、同じオブジェクトが2つ同時に対象に当たった場合に、ちゃんと2個分のダメージが与えられます。通常条件だとどちらか1個分のダメージしか与えられません。即時条件がある場合は、必ずしも高速ループやForEachループを回す必要がないこともありますので、色々試してみて下さい。

    – サンプルプログラム
    https://blog.clickteam.jp/wp-content/uploads/2018/10/cf25_blog_2018-10-27_test_click.zip

    #15735
    ラクレス
    参加者

    ご回答、サンプル作成ありがとうございます!
    緑表示の条件はそういった特性を持っているものだったのですね
    基本的な事なのだとは思いますが恥ずかしながら今になって知りました
    お陰様で色々と合点がいき胸のつかえが取れましたm(_ _)m

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