開発メモ。
cocos2d for javascript(jsb) + CocosBuilder + PhysicsEditor + cihpmunkという環境で作業をしている数少ない日本人であることを最近実感します。プログラマー仲間からも、無駄なことをしていると言われます。それはさておき。
さて、表題の件です。
普段、PhysicsEditorで円(Circle)を使うことが無かったために気づきませんでしたが、サンプルに入っているGCpShapeCache.mの「addShapesWithFile」内が少し間違えている気がします。
具体的には、407行目付近。以下の部分。
...
else if([fixtureType isEqual:@"CIRCLE"])
{
fd->fixtureType = GFIXTURE_CIRCLE;
NSDictionary *circleData = [fixtureData objectForKey:@"circle"];
fd->radius = [[circleData objectForKey:@"radius"] floatValue];
fd->center = CGPointFromString_([fixtureData objectForKey:@"position"]);
totalArea += 3.1415927*fd->radius*fd->radius;
}
...
ここの、
fd->center = CGPointFromString_([fixtureData objectForKey:@"position"]);
って、
fd->center = CGPointFromString_([circleData objectForKey:@"position"]);
が正しくないですかね?
chipmunk以外のサンプルソースもfixtureDataになってたけど、chipmunkでは少なくとも出力plist的にcircleDataじゃないと当たり判定がズレます。
まぁあくまでもサンプルですので、これそのままjsbに使ってるほうが悪いのですが。
特に調べてないので間違えてるかも知れないけどメモということで。
- 関連記事
-