Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何使用box2d在flash游戏中实现慢动作效果_Actionscript 3_Flash_Box2d - Fatal编程技术网

Actionscript 3 如何使用box2d在flash游戏中实现慢动作效果

Actionscript 3 如何使用box2d在flash游戏中实现慢动作效果,actionscript-3,flash,box2d,Actionscript 3,Flash,Box2d,当我在制作俯视赛车游戏时,我试图在汽车撞到物体时添加慢动作效果。我尝试过降低阶段。帧率但游戏似乎滞后。我还尝试了名为“触摸我的像素”(ref:)的在线教程。但我不明白 有没有办法显示这种慢动作效果。在这方面有人能帮我吗 感谢和问候 钱德拉塞卡最简单的方法是在某个地方有一个全局修改器属性,可以用来增加游戏中所有东西的移动 例如,您可以将属性speedModifier默认设置为1 public var speedModifier:Number = 1; 无论何时应用速度,只要乘以修改器: body

当我在制作俯视赛车游戏时,我试图在汽车撞到物体时添加慢动作效果。我尝试过降低阶段。帧率但游戏似乎滞后。我还尝试了名为“触摸我的像素”(ref:)的在线教程。但我不明白

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

感谢和问候


钱德拉塞卡

最简单的方法是在某个地方有一个全局修改器属性,可以用来增加游戏中所有东西的移动

例如,您可以将属性
speedModifier
默认设置为
1

public var speedModifier:Number = 1;
无论何时应用速度,只要乘以修改器:

body.SetLinearVelocity( new b2Vec2(x * speedModifier, y * speedModifier) );
speedModifier = 0.5;
通过这种方式,您只需将游戏速度减半,即可将修改器减半:

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 );
}

最简单的方法是在某个地方有一个全局修改器属性,可以用来增加游戏中所有东西的移动

例如,您可以将属性
speedModifier
默认设置为
1

public var speedModifier:Number = 1;
无论何时应用速度,只要乘以修改器:

body.SetLinearVelocity( new b2Vec2(x * speedModifier, y * speedModifier) );
speedModifier = 0.5;
通过这种方式,您只需将游戏速度减半,即可将修改器减半:

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 );
}