【发布时间】:2012-08-16 08:01:27
【问题描述】:
我想要做的是将一个实体从桨上弹开,并让它对桨的速度做出反应。
所以就像在旧的突围游戏中一样,你移动球拍的速度越快,角度就越钝。
到目前为止我所拥有的是这个;
var playerPos = player.pos.x - paddle.pos.x;
var relativePos = Math.floor(player.pos.x - this.pos.x + (player.size.x / 2));
var angle = relativePos * (Math.PI / paddle.size.x);
var newVel = Math.cos(angle);
player.vel.x = newVel;
我的数学不像以前那样了。
编辑
Player 是一个实体,具有 size.x 和 size.y、pos.x 和 pos.y、velocity.x 和 velocity.y 等属性。 this 对象具有相同的属性并且是桨。
如果你愿意,球员就是球。
所以你移动桨,它在 y 维度中的位置被设置,你在 x 中移动它。
【问题讨论】:
-
只是盲目猜测:
player.vel.x = newVel * paddle.vel.x。为了让修修补补更容易,您能否在jsfiddle.net 上进行现场演示? -
我无法主持现场演示,因为 ImpactJs 的来源需要购买,我认为出版商不会批准 :)
-
旧的突围游戏还根据实体击球的位置设置速度。因此,如果桨是静止的并且它击中最右边,它就会射出最右边。您是否也想将其纳入您的方程式中?
-
@EvanKennedy,是的,请
-
我正在尝试在给定的有限上下文中理解您的代码。首先,变量
player和this在给定上下文中的含义是什么。
标签: javascript impactjs