複数の親オブジェクトに子を連結

ホーム フォーラム Android,iOS 複数の親オブジェクトに子を連結

タグ: 

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

    前回の内容の続きとなります。
    宜しくお願いします。
    複数の親オブジェクトに子オブジェクトの連結を実装したのですが
    連なっている子オブジェクトが親から離れていってしまいます。
    また親オブジェクト作成毎に座標、子順番リストを作成しているのですがこの方法が良いとは思えませんので
    1つのリストにまとめることは出来ないでしょうか?

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

    親の作成時に同じ数のリスト、String tokenizerを作成し、ForEachループと固定値で結び付ければそれぞれ個別に動作するようになります。

    リストの不使用については、使わないほうがむしろ複雑な処理が必要になりますので、使わないことが全てのケースでいい効果になるとは限りません。使えるものは使いましょう。『開始時に表示』のチェックを外せば非表示になり処理も軽減されます。

    – サンプルプログラム
    https://blog.clickteam.jp/wp-content/uploads/2020/08/cf25_blog_2020-08-22_複数の親に子を連結2.zip

    #34095
    ASD
    キーマスター

    1つのリストにまとめるにしても、複数の親の座標が混在すると、それぞれの親の座標として取り出すことができませんので、やはり同じ数だけ必要です。

    #34096
    dai
    参加者

    フレーム1ですが私の作成したサンプルとの違いは何でしょうか?イベントを確認しましたがグローバル変数名の違いしか分かりませんでした。実際にはフレーム2を使用しますが・・・

    • この返信は3年、 7ヶ月前にdaiが編集しました。
    #34098
    dai
    参加者

    String tokenizerについてなのですが
    複数割り当てる理由がいまいち分かりません
    親オブジェクト1と衝突した子オブジェクトは親オブジェクト1のString tokenizerを使用
    親オブジェクト2と衝突した子オブジェクトは親オブジェクト2のString tokenizerを使用していると思うのですが
    String tokenizerは切り取るだけのものとしての認識ですので今回の場合フレーム2の23行目は子のForEachループで回しているので1つのString tokenizerで座標を切り取って使用できそうなのですがそれぞれの親に対応したString tokenizerを使用している理由を教えて下さい。

    • この返信は3年、 7ヶ月前にdaiが編集しました。
    • この返信は3年、 7ヶ月前にdaiが編集しました。
    #34102
    ASD
    キーマスター

    String tokenizerを親と同じ数作成するようにしました。
    また、子オブジェクト選択条件を新規オブジェクトの「値を参照してオブジェクトを選択」にしています。各オブジェクトにある「固定値と比較」を使うよりも処理が軽いです。

    前回のサンプルでは親オブジェクトが1個だけでしたが、今回は複数存在します。
    それぞれの親オブジェクトに繋がっている子オブジェクトの連結処理(座標変更)が同時に発生した場合、String tokenizerが1個だけでは、それぞれのリストの内容を放り込んで分割することができません(ループによってイベントは複数回実行されるが、String tokenizer1個だけだと前に分割した内容が上書きされて消えてしまう)連結したオブジェクトの距離が離れていくのもこれが原因でした。

    私も最初は1個で行けると考えていましたが、結局は複数必要でした。

    • この返信は3年、 7ヶ月前にASDが編集しました。
    #34104
    dai
    参加者

    複数のリストを参照するときはString tokenizerの扱いに気を付けます。
    別の親リストを参照するときにForEachループのインデックス前のオブジェクトを上書きしてしまうということですね。イメージとしてはインデックス1の実行時インデックス0のオブジェクトに上書きされ実行って感じでしょうか?子が同一リストへ移行の場合は上書きされない
    インデックス1の時インデックス0が上書き実行されるのは不思議ではありますがそういうものだと考えます。

    話は変わりますが速度のことで実行できないことがあります。
    バウンスボールの速度1は1f毎0.121666pxですよね。
    これを種類バウンスボールを選択せずイベント内の計算で行いたいのですが
    x座標を0.121666ずつ移動させたオブジェクトとバウンスボールで動かしたものを比べると速度が変わってしまいます。
    計算式を教えてください。
    宜しくお願いします。

    • この返信は3年、 7ヶ月前にdaiが編集しました。
    • この返信は3年、 7ヶ月前にdaiが編集しました。
    • この返信は3年、 7ヶ月前にdaiが編集しました。
    • この返信は3年、 7ヶ月前にdaiが編集しました。
    • この返信は3年、 7ヶ月前にdaiが編集しました。
    Attachments:
    You must be logged in to view attached files.
    #34107
    dai
    参加者

    バウンスボールの速度に関してはやはり内容が異なりますので別に投稿します。
    ありがとうございました。

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