我需要知道如何使用box2d进行抛射运动。
最初是projectileTime=0;然后我调用下面的函数来实现抛射运动。它工作得很好。但是我想用box2d实现同样的功能。据我所知,Box2d只能用力来工作,它不鼓励直接放置物体,那么如何使用Box2d进行抛射运动??
-(void)projectilelaunched:(ccTime)dt
{
projectileTime+=(5*dt);
double vh=v*cos(theta);
x=vh*projectileTime;
double y = x*tan(theta)- 10*((x/vh)*(x/vh))/2;
projectile.position=ccp(projectilePositionBeforeLaunched.x + x,projectilePositionBeforeLaunched.y+y);
} 发布于 2011-09-09 18:23:55
使用box2D,你只需要设置它的初始位置和初始速度(通过applyForce)。Box2d会处理剩下的事情,应用重力,在击中其他物体时停止等等。
发布于 2011-09-09 18:19:48
实际上,您可以通过调用以下命令直接设置body的位置:
body->SetTransform(vector,angle)发布于 2012-12-07 22:55:35
b2Vec2 vector = self.speed * b2Vec2(cos(angle), sin(angle));
self.projectileBody->SetLinearVelocity(vector);https://stackoverflow.com/questions/7357669
复制相似问题