ホーム › フォーラム › Android,iOS › 連ねたオブジェクトの列間隔を一定に保つ方法
-
投稿者投稿
-
2020-05-24 9:10 pm #33903dai参加者
いつもお世話になっております。
オブジェクトを2つ以上連ねたときのオブジェクトの列間隔を一定にしたいです。
オブジェクトのサイズを大きくすると当然ですが後ろに繋がったオブジェクトと重なってしまいます。サイズに合わせて列をずらせるとよいのですが分かりません。
またオブジェクトに衝突したら後ろにそのオブジェクトが繋がっていくようしてあるのですが
オブジェクトの移動座標の取得が上手くいってないようでして座標取得にラグが発生してしまいます。(フレームが開始地点リストに移動座標分書き込まれていないとき)
こちらも考えましたが分かりませんでした。
ファイルの方作成しました。
宜しくお願い致します。Attachments:
You must be logged in to view attached files.2020-06-07 6:12 pm #33917dai参加者説明が下手でした。
改めてファイルを作成しました。
宜しくお願いします。Attachments:
You must be logged in to view attached files.2020-06-07 7:27 pm #33919dai参加者すみません気になった点があったので修正しました。
こちらがファイルになります。Attachments:
You must be logged in to view attached files.2020-06-23 8:58 pm #33947dai参加者投稿して1ヵ月程経ちますが確認して頂けないでしょうか?
スケールの大きさ変更分座標をずらせば良いと思うのですが
スケール値とピクセル移動分が合いません
宜しくお願いします。2020-08-04 7:03 pm #34052ASDキーマスター遅くなりました。こちらを参考にしてください。
・スケールが変更された際のオブジェクトの間隔
オブジェクトの幅から距離を算出し、衝突した(連結している)オブジェクトの順番に位置の再計算を行います。・連結時のラグ
リストの行数が連結イベントで取得する行数に満たない場合は、現存している行数から最古のものを使用します。– サンプルプログラム
https://blog.clickteam.jp/wp-content/uploads/2020/08/cf25_blog_2020-08-04_幅間隔を一定にする.zip2020-08-12 8:18 pm #34070dai参加者2020-08-12 11:14 pm #34073ASDキーマスター>8行目のグループオブジェクトの「ぶつかった順番」変数にリストの行数をセットしていますが
どの様な理由からでしょうか?オブジェクトのスケールが変動するために、常に親から子までの距離の再計算を行っています。
(変動するタイミングが固定の場合は常に実行せずにスケールが変更された時だけで良い)。
『親→子』間の距離の修正を行うので、後ろのオブジェクトになる程、それ以前に繋がっているオブジェクトの距離を加味する必要があります。
なのでぶつかった(繋がっている)オブジェクトの順番に距離(オブジェクトの半径+半径+マージン)を計算して、親の変数へどんどんと蓄積させています。「ぶつかった順番」変数にリストの行数をセットしているのはその値を参照すれば何番目のオブジェクトかが判るという確認のためのものでした。実際には必要ありません。
>11行目の速度係数の1.0/speedの計算式を1とせず1.0と小数点第一位まで記述している理由を教えて下さい。
CF2.5の計算式の仕様で、計算結果に小数点以下の値が含まれる場合、予め小数点を含んだ値を式へ入れて計算させる必要があります。
今回は、1F当りの移動量を0.121666pxとしたため、* 0.121666 の部分で小数点以下を含んだ値があるので、1.0は1でも良いのですが、仮にここが整数だった場合、整数だけで計算が行われると、結果に小数点以下が含まれても無視されてしまいます。その予防的措置のために1.0としてあります。例:
1 / ( 10 * 2 ) だと 0 になる。
1.0 / ( 10 * 2 ) だと 0.05 になる。変数には『整数型』と『浮動小数点型』があります。整数同士で計算を行うと変数が整数型のままとなるためこのような方法を取らなければいけません。これについては下記のトピックも参考にして下さい。
2020-08-13 8:36 pm #34075 -
投稿者投稿
- このトピックに返信するにはログインが必要です。