2013-10-09 24 views
0

我正在嘗試創建一個類似於吉他英雄的遊戲。在屏幕左側創建形狀,並在右側的「命中區域」生成動畫。這個想法顯然是這些形狀在歌曲的正確位置到達了擊球區域。AS3中吉他英雄風格遊戲的邏輯

我目前正在制定每個形狀應該到達命中區域的確切時間,意識到形狀在整個屏幕上動畫需要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文檔的所有其他信息。

我會想象有一個更好的方法做到這一點,但我已經搜索,找不到任何東西。

任何幫助,將不勝感激。

回答

0

如果你不打算使用TweenMax.killDelayedCallsTo,有可能是沒有理由使用TweenMax.delayedCall超過flash.utils.setTimeout :)

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

也就是說,setTimeout的是不是真的「好」以任何方式。如果這是您使用TweenMax的唯一地方,您只能以swf大小贏得一些字節。

這樣做的另一種方法是將您的歌曲放入FLV(不帶視頻)並使用提示點來創建形狀。海事組織對你的方法沒有真正的優勢,除非你在線播放歌曲,並且用戶連接導致暫停(在這種情況下,任何方式都會遇到任何困難)。

+0

謝謝,我在項目中使用TweenMax很多,所以我會堅持。 – user2145312