【问题标题】:Objective C - Box2d float type casting: multiplying * operand on float32Objective C - Box2d 浮点类型转换:在 float32 上乘以 * 操作数
【发布时间】:2012-08-03 23:14:36
【问题描述】:

请帮助我通过解释消除错误

以下行出错:

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

错误消息:二进制表达式的操作数无效('float32 (aka 'float') 和 'float32()())

_Body 是一个 B2Body 对象

_Sprite 是一个 CCSprite 对象

_PhysicsWorld->RATIO 返回 float32

如果我将行更改为:

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

另一个错误信息来了:C-style cast from float32(*)() to float is not allowed.

【问题讨论】:

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


    【解决方案1】:

    您可能需要这样做:

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

    注意 RATIO 后面的尾随 '()'。

    您正在将一个浮点数(它解析为指针解引用)乘以一个返回浮点数的函数(我相信)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-02
      • 2011-03-12
      • 1970-01-01
      相关资源
      最近更新 更多