我想将一些代码从ActionScript移植到c ++ box2d
ActionScript的代码来自2011年,所以我不确定它使用哪个版本的box2d
我正在使用最新的。
这就是我在动作脚本中的所有方式:
var leftAxle:b2Body=world.CreateBody(leftAxleBodyDef);
leftAxle.CreateFixture(leftAxleFixture);
// this is the part i need to port , there is no SetPosition in the box2d 2.2+ version
leftAxle.SetPosition(new b2Vec2(carPosX/worldScale-axleContainerDistance/worldScale-axleContainerHeight/worldScale*Math.cos((90-axleAngle)*degreesToRadians),carPosY/worldScale+axleContainerDepth/worldScale+axleContainerHeight/worldScale*Math.sin((90-axleAngle)*degreesToRadians)));
基本上是具有斜边角度的盒子
答案 0 :(得分:2)
抱歉,您以为您正在从C ++转换为AS3
似乎SetPosition()
现在是SetTransform(const b2Vec2& position, float32 angle)
。这是因为他们在幕后将位置和旋转存放为b2Transform
。即使GetPosition()
只是返回position
b2Transform
属性