0

ギターヒーローに似た構造のゲームを作ろうとしています。形状は画面の左側に作成され、右側の「ヒット エリア」にアニメーション化されます。アイデアは明らかに、シェイプが曲の正しいポイントでヒット領域に到達するということです。

現在、各形状がヒット領域に到達する正確な時間を計算しています。形状が画面全体でアニメーション化されるまでに 4 秒かかることを認識しています。

基本的に、曲の冒頭で、曲に必要なすべての形状に対して TweenMax 遅延呼び出しを使用しています。私が使用している遅延は、形状がアニメーション化するのにかかる時間からアニメーション時間を引いたものとして事前に計算されています。

TweenMax.delayedCall(1, createShape, [params]);
TweenMax.delayedCall(3, createShape, [params]);
TweenMax.delayedCall(5.5, createShape, [params]);
TweenMax.delayedCall(11, createShape, [params]);
TweenMax.delayedCall(17, createShape, [params]);

等...

明らかに私はループを使用しており、遅延とその他すべての情報をxmlドキュメントから抽出しています。

これを行うにはもっと良い方法があると思いますが、検索しても何も見つかりません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

TweenMax.killDelayedCallsTo を使用しない場合、flash.utils.setTimeout で TweenMax.delayedCall を使用する理由はおそらくないでしょう :)

setTimeout(createShape, 5500 /* ms */, param1, param2, param3);

そうは言っても、 setTimeout は決して「より良い」わけではありません。これがTweenMaxを使用した唯一の場所である場合、swfサイズで数バイトしか獲得できませんでした。

これを行うもう 1 つの方法は、曲を FLV (ビデオなし) に配置し、キュー ポイントを使用して形状を作成することです。IMOこれには、オンラインで曲を再生し、ユーザー接続が一時停止を引き起こす場合を除いて、あなたの方法と比べて実際の利点はありません(その場合、エクスペリエンスはとにかく最悪です).

于 2013-10-09T14:37:28.097 に答える