【问题标题】:Can I scale a shape in box2d as sprite do?我可以像精灵一样缩放 box2d 中的形状吗?
【发布时间】:2012-01-31 06:30:01
【问题描述】:

由于我们一直使用 cocos2d 中的函数,我可以随时缩放我的精灵。我可以在 box2d 中做同样的事情吗?例如,我创建了一个圆形的身体,然后我想把它变大。

我在创建圆后尝试重新分配 m_radius,但不起作用。

【问题讨论】:

标签: cocos2d-iphone box2d scale


【解决方案1】:

如果您只是将 shape.m_radius 分配给一个新值,它将不起作用。

您需要引用与您为对象创建的 b2Fixture 关联的形状对象:

fixture->GetShape()->m_radius = new_radius/PTM_RATIO;

希望这会有所帮助。

【讨论】:

  • 要获得与新尺寸相匹配的质量特征,您还需要一个用于主体的 ResetMassData。一种更可靠且面向未来的方法是销毁并重新创建夹具(尽管如果您有与之相关的游戏逻辑,这可能会很麻烦)。
  • 谢谢哥们,它有效。我找到了问题所在。如果我输入 circle.m_radius = radius/PTM_RATIO,它只是分配一个我永远不会使用的对象的变量。我必须得到夹具中的形状,然后按照您的建议重新分配它。
猜你喜欢
  • 2013-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
  • 2023-03-07
  • 2011-01-26
  • 1970-01-01
相关资源
最近更新 更多