iphoneのcocos2dのシマリス - 重力のセンター
-
21-09-2019 - |
質問
ここに私の問題があります。私は私が力がその上部に適用した場合、それはその脇腹に落ちることができるようにオブジェクトの下にその重心を変更すること(ソーダが立ってすることができます)シマリスの剛体を持っています。
アムI右のトラックに?
1)何らかの理由で、私はトラブルの特定の値に重力ののを体の中心部の設定を持っています。誰もが簡単な解決策を持っていてください!
2)どのような重力のののスプライトのセンターはどうですか?私は同様にそれを変更する必要がありますか?もしそうなら、どのように?
のことを明確にするためにありがとうございます。
のYohann T
解決
ネヴァーマインド!
それは16時間前だったと私は自分自身でそれを見つけるようになったので、私は(いや、それは時間のどのような廃棄物、長いそれを把握することに連れて行ってくれました)私自身の質問に答えるのです。幸いにも、あなたのために、私はあなたが考え出すことに多くの時間を費やす必要はありませんので、解決策を共有するつもりです。
1)何らかの理由で、私は特定の値に身体の重心を設定する問題を抱えています。誰もが簡単な解決策を持っていてください!
答:本当のシミュレートされた世界では、重心は、をしないでMODIFIABLE のですので、あなたが実際にオブジェクトをモーフィングunlesssあなたは、身体の重心を変更することはできません! ! !
これを行う方法は、「ボックス」形状のボディを作成することではありません。あなたはそれが物理学の任意のタイプだけでなく、運動の影響を受けることができるように、頂点を使用してオブジェクトを作成する必要があります。
ここで私は、オブジェクトの周りにボックスを作成するために使用されるコードは次のとおりです。
int num = 4;
cpVect verts[] = {
cpv(-15,-15),
cpv(-15, 15),
cpv( 15, 15),
cpv( 15,-15),
};
body = cpBodyNew(1.0f, cpMomentForPoly(1.0f, num, verts, cpvzero));
body->p = cpv(-280, 240);
cpSpaceAddBody(space, body);
shape = cpPolyShapeNew(body, num, verts, cpvzero);
shape->e = 0.0f; shape->u = 1.5f;
shape->collision_type = 1;
cpSpaceAddShape(space, shape);
<時間>
2)重力のスプライトの中心部については何?私は同様にそれを変更する必要がありますか?もしそうなら、どのように?
このメソッドを使用します:
[sprite setTransformAnchor:ccp(27,54)];
しかし、座標が画面の左下隅から始まることに注意してください。しかし、あなたは、あなたが正しく身体の物理学を扱う場合スプライトをタッチする必要はありません。
幸運今!
のYohann T