gpt4 book ai didi

c++ - 将移动的 b2body 移动到特定位置

转载 作者:行者123 更新时间:2023-11-28 07:27:17 27 4
gpt4 key购买 nike

我有一个正在移动的 b2body。我想要的是将 body 移动到特定位置并将 body 停在该位置,无论它的当前 vector 如何。

我尝试计算两点之间的 vector ,然后用新 vector 执行 ApplyLinearImpulse,但我似乎无法让它停在正确的位置。到目前为止,这是我尝试过的。

-(void) moveBodyToPoint {
ball.body->SetLinearVelocity(b2Vec2(0,0)); // set to zero before applying the impulse
CGPoint vec = CGPointMake(ball.position.x-point.position.x,ball.position.y-point.position.y);
ball.body->ApplyLinearImpulse(b2Vec2(vec.x,vec.y), ball.body->GetWorldCenter());
}

最佳答案

我在游戏中使用的模拟传送器是这样的:

ball.body->SetLinearVelocity( b2Vec2(0, 0) );
ball.body->SetTransform( destination, body.bBody.GetAngle() ); //destination I dont think require explaining
ball.body->SetAngularVelocity( 0 ); //might not need that, dependant on what you are doing

请记住,要调用 SetTransform,您需要在 box2d 世界步骤之外进行。

关于c++ - 将移动的 b2body 移动到特定位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18539830/

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