Objective C - Box2d float类型转换:在float32上乘以*操作数

时间:2012-08-03 23:14:36

标签: objective-c casting type-conversion box2d-iphone

请帮我解释错误并解释

以下行出错:

_Sprite.position.x = _Body-> GetPosition()。x * _PhysicsWorld-> RATIO;

错误消息:二进制表达式的操作数无效('float32(又名'浮动')和'float32()()

_Body是一个B2Body对象

_Sprite是一个CCSprite对象

_PhysicsWorld-> RATIO返回float32

如果我将该行更改为:

_Sprite.position.x = _Body-> GetPosition()。x *(float)_PhysicsWorld-> RATIO;

另一个错误信息是:不允许从float32(*)()到float的C样式转换。

1 个答案:

答案 0 :(得分:0)

您可能需要这样做:

_Sprite.position.x = _Body->GetPosition().x * _PhysicsWorld->RATIO();

注意在RATIO之后的尾随'()'。

你正在通过一个返回float的函数(我相信)将一个float(它解析成指针取消引用)相乘。