cocos2d-xエンジンでゲームを作成するには、任意の画像から身体を作成するツールが必要でした。 最初に、検索により商用ツールPhysicsEditorに導かれましたが、その価格を見て、もっと安いものを見つけることにしました。 私にとって役立つビデオチュートリアルに出会うまで、かなりの時間を費やさなければなりませんでした。
この記事では、無料のクロスプラットフォーム物理ボディエディターで画像の物理ボディを作成し、それらをcocos2d-x-sceneに統合する方法について説明します。
レッスンには、背景が透明な画像が必要です。 適切なものが手元にない場合は、これを使用できます。
このリンクからPhysics Body Editorをダウンロードし
てください 。
パッケージを展開し、physics-body-editor.jarをダブルクリックして実行します。 システムにJavaソフトウェアがインストールされている必要があります。インストールされていない場合、エディターは起動しません。
Physics Body Editorを起動すると、そのようなウィンドウが表示されます。

[新規プロジェクト]をクリックします

上部で、物理ボディを含むファイルが保存されるフォルダーを選択します。 以下にこのファイルの名前を書きます。 私はそれをpampkin.jsonと呼びました。 OKをクリックします。

[新規]をクリックします

表示されるウィンドウで、作成したボディの名前を入力し、名前のパンプキンを設定します。 次に、[画像からボディを作成]ボタンをクリックします。

画像ファイルを選択し、[OK]をクリックします。
シーンメニューと同様に、エディターに画像が表示されました。 これらのメニューフラグの意味を説明します。
作成フラグが設定されると、シーン上のLMBのクリックごとに、閉ループが得られるまで体のポイントが作成されます。 5ポイントの輪郭を作成しました。 Creationフラグをクリックすると、シーンモードがEditionに変わります。

エディションモードでは、作成したポイントを編集できます。 マウスカーソルをポイントの上に移動し、マウスの左ボタンを押したまま、ポイントをリリースせずに、より適切と思われる位置にドラッグします。 このモードでは、[ポイントの削除]をクリックして、選択したポイントを削除することもできます。 エディションフラグをクリックして、テストボディテストモードに切り替えます。

テストモードでは、マウスの左ボタンを押しながら視界を体に向けると、ボールを発射して跳ね返すことができます。 テストフラグをクリックすると、再び作成モードになります。

私たちの体は、私たちが必要とするものとは完全に異なることが判明しました。 したがって、[すべてのポイントをクリア]をクリックして、すべてのポイントを削除します。

Physics Body Editorではこのプロセスを自動化できるため、ポイントを手動で作成するのはあまり便利ではありません。 [自動トレース]をクリックし、表示されるウィンドウで、デフォルトのままにして[OK]をクリックします。

そして、私たちはここでそのような体を得ました。

気に入らない場合は編集してテストし、[保存]をクリックして保存します。

身体は画像の準備ができています。
さらに、cocos2d-xを使用します。
最初に、物理ボディと画像を含むファイルをResourcesフォルダーに転送します。
cocos2d-xで新しいプロジェクトを作成します。
物理的なボディがあるjsonファイルをダウンロードするには、特別なクラスをダウンロードする必要があります。
それを
ダウンロードして 、Classesフォルダーにドロップします。
次に、CMakeLists.txtファイルを開き、そこにMyBodyParser.hおよびMyBodyParser.cppファイルへのパスを追加します。 次のようになります。
set(GAME_SRC Classes/AppDelegate.cpp Classes/HelloWorldScene.cpp Classes/MyBodyParser.cpp ${PLATFORM_SPECIFIC_SRC} ) set(GAME_HEADERS Classes/AppDelegate.h Classes/HelloWorldScene.h Classes/MyBodyParser.h ${PLATFORM_SPECIFIC_HEADERS} )
Android用のコードをコンパイルする場合は、Android.mkファイルを開いて、MyBodyParserクラスへのパスを追加します。
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../../Classes/AppDelegate.cpp \ ../../../Classes/MyBodyParser.cpp \ ../../../Classes/HelloWorld.cpp
ファイルHelloWorld.hを開き、そこからそのようなコードを削除します。
クラスMyBodyParserを追加
#include "MyBodyParser.h"
HelloWorldクラス内のこのようなコード。
private:
説明が必要なコードにはコメントが含まれます。
HelloWorld.cppを開き、不要なmenuCloseCallback関数(Ref * pSender)を削除します。
createScene()関数のコードを1つに置き換えます。
Scene* HelloWorld::createScene() {
bool HelloWorld :: init()関数の内容をこれに置き換えます。
bool HelloWorld::init() {
この結果をコンパイル、実行、取得します。

さて、物理学の仕事をより明確に見るために、カボチャを回転させることができます。
sprite->getPhysicsBody()->setAngularVelocity( -10 );
エディターでボディを作成し、上記のコードの一部をプロジェクトに貼り付けるのが面倒な人は、このリンクでClassesおよびResourcesファイルを含む
既製のフォルダーを
ダウンロードできます 。
makefileに必要なものをすべて追加することを忘れないでください。 この出版物が、初心者がcocos2d-xの物理学をより早く始めるのに役立つことを願っています。