本文整理汇总了C++中b2Body::GetWorldVector方法的典型用法代码示例。如果您正苦于以下问题:C++ b2Body::GetWorldVector方法的具体用法?C++ b2Body::GetWorldVector怎么用?C++ b2Body::GetWorldVector使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类b2Body
的用法示例。
在下文中一共展示了b2Body::GetWorldVector方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateDrive
void updateDrive(int controlState) {
//find desired speed
float desiredSpeed = 0;
switch (controlState & (TDC_UP | TDC_DOWN)) {
case TDC_UP: desiredSpeed = maxForwardSpeed; break;
case TDC_DOWN: desiredSpeed = maxBackwardSpeed; break;
default: return;//do nothing
}
//find current speed in forward direction
b2Vec2 currentForwardNormal = w_body->GetWorldVector(b2Vec2(0, 1));
float currentSpeed = b2Dot(getForwardVelocity(), currentForwardNormal);
//apply necessary force
float force = 0;
if (desiredSpeed > currentSpeed)
force = maxDriveForce;
else if (desiredSpeed < currentSpeed)
force = -maxDriveForce;
else
return;
//w_body->ApplyForce(currentTraction * force * currentForwardNormal, w_body->GetWorldCenter());
}
示例2: getForwardVelocity
b2Vec2 getForwardVelocity() {
b2Vec2 currentForwardNormal = w_body->GetWorldVector(b2Vec2(0, 1));
return b2Dot(currentForwardNormal, w_body->GetLinearVelocity()) * currentForwardNormal;
}
示例3: getLateralVelocity
b2Vec2 getLateralVelocity() {
b2Vec2 currentRightNormal = w_body->GetWorldVector(b2Vec2(1, 0));
return b2Dot(currentRightNormal, w_body->GetLinearVelocity()) * currentRightNormal;
}