プログラムで作成した形状をロードする GB2ShapeCache と呼ばれるプログラムPhysics Editorに関連付けられたクラスがあります。現在、形状のスケールをその場で変更することはできないことに気付きました。そのため、物理エディタで作成した形状のフィクスチャをスケールできるようにしたいと考えています。アプリの CCSprite のスケールをランダムにできるようになったので、現在 addShapesWithFile メソッドで、ポリゴンに対してこれを行います。
vertices[vindex].x = (offset.x * sprite.scaleX) / ptmRatio_;
vertices[vindex].y = (offset.y * sprite.scaleY) / ptmRatio_;
円の場合は次のようになります。
circleShape->m_radius = ([[circleData objectForKey:@"radius"] floatValue] / ptmRatio_) *sprite.scale;
また、スケールを取得できるようにスプライトを渡すことができるようにメソッドを変更しました。
-(void) addShapesWithFile:(NSString*)plist forSprite:
(CCSprite*)スプライト
スプライトを渡してスケールを取得できるようにします。
ただし、既に追加されているため、すべての形状を plist に再ロードする必要はないため、これは非効率的であることがわかりました。
私が今していることを行う方法はありますが、 addFixturesToBody メソッドでですか? この方法では、既に追加されている plist シェイプを再作成せず、フィクスチャをボディに追加する準備ができたときにのみフィクスチャをスケーリングします。
さらに多くのコードや情報が必要な場合は、お気軽にお問い合わせください。私はこの問題が単純でなければならないことを知っています!!!
ありがとう!