gpt4 book ai didi

android - 以角度和速度应用于 Sprite 的脉冲

转载 作者:行者123 更新时间:2023-11-30 03:24:30 25 4
gpt4 key购买 nike

我正在使用 andengine 和 box2d 生成类似掷纸的游戏。我无法计算的是以下函数中第一个参数的正确向量,以使球以正确的速度和高度上升(想法是球的高度不超过屏幕高度):

pelota_body.applyLinearImpulse(new Vector2(pointX, impulse), pelota_body.getWorldCenter());

在 pointX 中,我使用值 vectorXPoint-(CAMERA_WIDTH/2) 并且它沿着手指绘制的矢量的方向移动,但是我似乎无法获得正确的脉冲值以及我使用的任何值(大约 400)在每台设备上的工作方式都不同。

最佳答案

为了让 body 在坠落前移动高度h,你需要它的初始垂直速度:

v_y = sqrt(2*g*h),其中 g 是重力加速度。

您可以根据此v_y 或仅使用SetLinearVelocity 方法计算冲量。

编辑

//box2d source
inline void b2Body::ApplyLinearImpulse(const b2Vec2& impulse, const b2Vec2& point)
{
if (m_type != b2_dynamicBody)
{
return;
}

if (IsAwake() == false)
{
SetAwake(true);
}
m_linearVelocity += m_invMass * impulse;
m_angularVelocity += m_invI * b2Cross(point - m_sweep.c, impulse);
}

所以我会设置速度

关于android - 以角度和速度应用于 Sprite 的脉冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18467614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com