【发布时间】:2010-08-01 13:39:23
【问题描述】:
我在 box2d iPhone 应用程序中的一个对象中应用了脉冲,现在想提高它在特定方向上的速度....我的意思是我需要两件事
1.在一个方向上穿过物体 2.提高速度
请帮忙..
【问题讨论】:
标签: iphone objective-c cocos2d-iphone box2d
我在 box2d iPhone 应用程序中的一个对象中应用了脉冲,现在想提高它在特定方向上的速度....我的意思是我需要两件事
1.在一个方向上穿过物体 2.提高速度
请帮忙..
【问题讨论】:
标签: iphone objective-c cocos2d-iphone box2d
b2Vec2 force = b2Vec2(xAcceleration, yAcceleration);
force *= dt; // Use this if your game engine uses an explicit time step
b2Vec2 p = myObjectBody->GetWorldPoint(b2Vec2(0.0f, 0.0f));
body->ApplyForce(force, p);
通过修改xAcceleration和yAcceleration,可以使物体以不同的速度向不同的方向运动。 (如果您计算角度,您可能需要使用force.Normalize();,然后乘以速度。)
【讨论】:
b2Vec2 vector = self.speed * b2Vec2(cos(angle), sin(angle));
self.yourbodyBody->SetLinearVelocity(vector);
[self schedule:@selector(increaseSpeed) interval:0.1];
- (void)increaseSpeed
{
self.speed += 0.01;
float angle = self.yourbodyBody->GetAngle();
b2Vec2 vector = self.speed * b2Vec2(cos(angle), sin(angle));
self.yourbodyBody->SetLinearVelocity(vector);
}
【讨论】: