処理の優先方法

ホーム フォーラム Android,iOS 処理の優先方法

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

    分からない事が多いため連続投稿となります。

    2種類のオブジェクトを同時のタイミングで破壊した時
    破壊したタイミングで各々のイベントが発生する場合
    どちらかのイベントを優先的に行う方法を教えて下さい。

    ファイルの方作成しました。
    お手数お掛けしますが宜しくお願いします。

    Attachments:
    You must be logged in to view attached files.
    #16138
    ラクレス
    参加者

    こんにちは。こんな感じでどうでしょう。

    各★に優先度と移動先フレームを入力する変数を用意します。
    優先度に最優先されるものから順に 1.2.3.. と入力しておきます。
    移動先フレームも入力しておきます。
    (サンプルでは優先度が移動先フレームの若い順に並んでいます)

    どこかに参照用の優先度と移動先フレームを入力する変数を用意します。
    (サンプルではグローバル変数を使っています)

    星タッチ時に参照用優先度に★の数+1を入力します。
    同時にForeachを回し、接触している★の優先度<参照用優先度
    だった場合、参照用優先度と参照用移動先フレームに
    ★の優先度と移動先フレームを上書きし、参照用移動フレームへ移動します。

    青■や6行目~のイベントは数値視認用なので実際は不要です。

    ちなみに、同時に破壊を行っても最後に実行される為
    破壊されたのかどうかも見えないので省いてあります。
    ゲームの方で破壊されるのを見てから移動といった演出をされるのであれば、
    ↑での Foreach 処理後 ★の移動先フレーム=参照用移動先フレーム
    で対象の★を指定出来ます。

    Attachments:
    You must be logged in to view attached files.
    #16209
    dai
    参加者

    お返事遅くなりまして申し訳ありません。
    サンプルの方ありがとうございました。
    実行処理の順についてまだ幾つか分からない事が有ります。
    分からないことが多く複雑なのでファイルに記してあります。
    ファイルにて分かりにくい箇所が有りましたら教えて下さい。
    宜しくお願い致します。

    Attachments:
    You must be logged in to view attached files.
    #16612
    ラクレス
    参加者

    黄色★のforeachインデックスが緑★より後ろなので
    緑と黄色の接触が1フレーム内で同時に行われた場合
    インデックスが後ろの黄色が後に実行(緑の命令に上書き)
    されているのだと思われます。
    foreach実行中の条件を外すと行が↓である方が実行されます。

    ちなみに新規作成されたグループオブジェクトのインデックスは
    エディタ上に作成されたオブジェクトから順に割り込まれていく様です。
    黄色★は青と緑より後にエディタ上に作成されたようなので、
    黄色★が出来た後に緑や青を作成してもindexは後ろに押し出されていくといった感じです。

    #18061
    dai
    参加者

    確認ですが
    オブジェクトグループのインデックス割り当ては
    例えば青作成→緑作成→黄色作成
    この順番であらかじめ各1つずつ作成
    その後青4つ作成した場合
    青から0〜4 緑5 黄色6
    とインデックスが割り当てられると言う事ですね。

    イベント処理の順番に関しては
    ループ処理を外して実行しました所
    理解する事ができました。

    ありがとうございました。
    今後も宜しくお願いします。

    #18080
    dai
    参加者

    すみません
    もう1つだけ確認しておきたい事がありました。
    アニメーション停止が終了時オブジェクトが破壊されるイベントは
    最後の青星が破壊された時の黄星作成イベントと
    同じタイミングで実行されますか?

    後から作成される黄星か破壊される理由が
    いまいち不明瞭でして
    お願いします。

    #18889
    dai
    参加者

    スパムが多いので
    暫くの間は投稿を控えます。
    対策をお願いします。

    #21469
    ASD
    キーマスター

    >アニメーション停止が終了時オブジェクトが破壊されるイベントは
    最後の青星が破壊された時の黄星作成イベントと
    同じタイミングで実行されますか?

    >後から作成される黄星か破壊される理由が
    いまいち不明瞭でして
    お願いします。

    アニメーションには表示速度がありますので、1枚しか画像が無くてもその1枚を表示する時間が経過しなければアニメーション終了の条件は真になりません。

    よって、アニメーション停止が終了時オブジェクトが破壊されるイベントは最後の青星が破壊された時の黄星作成イベントよりも後になります。

    それだけでなく、『破壊』アクションが実行された時、その時点においては『そのオブジェクトを破壊する』とマークされるだけで、実際に破壊されるのはエディタに設定されたイベントが全て実行された後(画面更新のタイミング)になります。作成と同じ行で破壊を行ってもそれ以降にそのオブジェクトに関連するイベントがあれば、しれらは実行されます。

    – サンプルプログラム
    https://blog.clickteam.jp/wp-content/uploads/2019/02/cf25_blog_2019-02-18_イベントの実行順.zip

    #22225
    dai
    参加者

    ありがとうございます。
    破壊イベントは最後に実行されるのですね。
    破壊中にも順番があるみたいですね。(オブジェクトをフレームに作成した順)

    オブジェクトが作成→アニメーション停止までの時間は何で決まるのでしょうか?

    青星が最後に破壊された条件に0.05秒の一定遅延後に発射のタイマーを作動させ
    タイマーのイベント発生時を条件に黄星を作成した場合も破壊されました。
    0.06秒のタイマー設定では黄星は破壊されませんでした。

    各↓の部分の実行までの時間を教えて下さい。

    条件 オブジェクトAが青星に重なった時
          ↓   
    実行 青星破壊     
          ↓     
    条件 最後の青星が破壊された時
          ↓
    実行  黄星作成
          ↓
    条件 黄星アニメーション停止が終了
          ↓
    実行  黄星破壊

    宜しくお願い致します。

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