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