2012-12-20 26 views
1

因爲我正在研究頂級視圖賽車遊戲,在這種遊戲中,我試圖在汽車撞擊物體時添加慢動作效果。我曾嘗試減少Stage.frameRate但遊戲出現滯後。我也嘗試過使用在線教程touch my pixel(ref:http://blog.touchmypixel.com/2009/12/box2d-contactpoint-filtering/)。但我不明白。如何在box2d flash遊戲中做慢動作效果

是否有任何解決方案用於展示此類慢動作的效果。任何人可以幫助我在這方面

感謝和問候,

錢德拉塞卡

回答

1

最簡單的方法是將有一個全球性的改性劑性能的地方,可用於繁殖一切在遊戲的運動。

例如,您可以將屬性speedModifier默認爲1

public var speedModifier:Number = 1; 

,只要你申請的速度,只是修飾語乘法:

body.SetLinearVelocity(new b2Vec2(x * speedModifier, y * speedModifier)); 

這樣,所有你需要做的遊戲速度的一半是一半的修改:

speedModifier = 0.5; 

爲了讓您的代碼更加整潔,並使您的遊戲組件更容易管理,可以迭代Box2D世界中的所有主體,並在每個更新步驟的頂部修改它們的速度。沿線的東西:

for each(var i:b2Body in world.GetBodyList()) 
{ 
    var currentVel:b2Vec2 = i.GetLinearVelocity(); 

    var newVel:b2Vec2 = new b2Vec2(
     currentVel.x * speedModifier, 
     currentVel.y * speedModifier 
    ); 

    i.SetLinearVelocity(newVel); 
} 
+0

感謝馬蒂華萊士其工作....... :) – Chandu