2010-07-05 50 views
2

首先,對不起我的英語。 我想做一個flash遊戲,它是關於一些魚在坦克中游泳。 所有的魚都隨機遊動,我不需要任何旋轉,只需左右方向就可以。 但結果是他們的行爲真的很奇怪。 有人能告訴我如何讓他們像真正的魚一樣游泳嗎?如何在Flash中更順暢地游泳魚

還有另外一個問題。當魚的數量增加到50或更多時,幀率會迅速下降。

對不起,我的英語了。

現在我用Tweenlite來控制游泳動作,它的效果非常好。但是如果我向坦克中添加超過40或50條魚的話,幀速率仍會下降。我認爲必須有更好的方法來做到這一點。

這裏是我的代碼

public function onEnterFrame(event:Event):void{ 
     var time:Number = Math.sqrt(Math.pow(xOffset,2)+Math.pow(yOffset,2))/speed; 
     TweenLite.to(this,time,{x:x+xOffset ,y:y+yOffset*0.5 ,ease:Quad.easeOut,onComplete:moveComplete}); 
    }*/ 

X偏移和Y偏移的代碼是隨機數

+1

沒有任何代碼或swfs來看,這是不可能回答你的問題。 – back2dos 2010-07-05 16:04:58

+0

嘗試:http://www.google.com/search?q=sprite+fish+flash+animation – 2010-07-06 01:53:46

+0

我試過google.com/search?q=sprite+fish+flash+animation,但我什麼也沒有 – ertao 2010-07-06 02:15:11

回答

2

使用OEF功能,您將創建一個新的Tween和計算新的運動每一幀。也許你應該想出一個更便宜的方法來計算隨機移動。

另一種解決方案是大塊的計算,所以你只能同時做一部分魚。所以在每一幀你只計算1/5的魚。