我正在使用AS3中的Box2D物理用A,D键(左和右)编写角色移动代码,我不知道b2body在你的代码中是如何获得impulse.x的即将看到,
switch (moveState)
{
case "RIGHT":
if (mainChar.GetLinearVelocity().x = 1.3)
{
impulse.x = 0.0;
impulse.y = 0.0;
mainChar.ApplyImpulse(impulse, mainChar.GetPosition());
}
break;
case "LEFT":
if (mainChar.GetLinearVelocity().x = -1.3)
{
impulse.x = 0.0;
impulse.y = 0.0;
mainChar.ApplyImpulse(impulse, mainChar.GetPosition());
}
case "STOP":
if (mainChar.GetLinearVelocity().x > 0)
{
impulse.x = -mainChar.GetLinearVelocity().x;
impulse.y = 0.0;
mainChar.ApplyImpulse(impulse, mainChar.GetPosition());
impulse.x = 0.0;
}
if (mainChar.GetLinearVelocity().x < 0)
{
impulse.x = +mainChar.GetLinearVelocity().x;
impulse.y = 0.0;
mainChar.ApplyImpulse(impulse, mainChar.GetPosition());
impulse.x = 0.0;
}
if (mainChar.GetLinearVelocity().x = 0)
{
impulse.x = 0.0;
break;
}
在代码中我没有给出impulse.x值1.3或-1.3。我不知道有关陈述的任何内容吗? ^^&#34;
编辑:哦,好吧,我猜&#34; =&#34;为其分配值。我对此并不了解 - 对我来说仍然有点奇怪,因为它在if条件下。 (我的目的是测试平等,&#34; ==&#34;)
然而,我不想要这个,是吗?我读过我不应该设置一个线性速度而是让b2body加速并保持所需的速度。
答案 0 :(得分:1)
它来自这里:if (mainChar.GetLinearVelocity().x = 1.3)
。这是一项任务而非比较。