【问题标题】:How to do slow motion effect in flash game with box2d如何用box2d在flash游戏中做慢动作效果
【发布时间】:2012-12-20 10:06:35
【问题描述】:

当我正在开发顶视图赛车游戏时,我试图在汽车撞到物体时添加慢动作效果。我尝试降低 Stage.frameRate 但游戏似乎滞后。我还尝试了名为 touch my pixel 的在线教程(参考:http://blog.touchmypixel.com/2009/12/box2d-contactpoint-filtering/)。但我不明白。

有没有办法显示这种慢动作效果。有人可以在这方面帮助我吗

感谢和问候,

钱德拉塞卡

【问题讨论】:

    标签: actionscript-3 flash box2d


    【解决方案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 );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 2018-12-09
      • 2013-01-12
      • 2011-09-20
      相关资源
      最近更新 更多