1.ブログ紹介
強調:このブログ投稿の内容はオリジナルではなく、次のリンクから複製されています。優れた記事学習を提供してくれたブロガーに感謝します。
オリジナル:https://www.cnblogs.com/chevin/p/5899516.html
コンテンツの紹介:このブログでは、カスタムC ++スクリプトをcocos2dxのluaにバインドする特定の手順を紹介しています。元のブロガーが非常に明確に記述しており、記録と学習のためにここに複製されています。
2.コンテンツ
1.最初にC ++クラスStudentを定義します
cocos2d-x \ cocosフォルダーの下に新しいuser_defineフォルダーを作成して、2つのファイルを配置します。
注:このクラスはRefを継承せず、単純なC ++クラスです。
①ヘッダーファイルStudent.h
②cppファイルStudent.cpp
2.これら2つのファイルをlibcocos2dプロジェクトに追加します
3.対応するini構成ファイルを変更します
①ファイルcocos2dx_csloader.iniをcocos2d-x \ tools \ toluaにコピーし(他のファイルをコピーすることも可能です)、ファイル名をuserdefine_student.iniに変更します。
変更に必要なフィールド値のリストは次のとおりです:
②genbindings.pyで使用される名前を定義します
[cocos2dx_csloader]が[userdefine_student]に変更されました
③C++中間ブリッジ関数のプレフィックスを生成します
prefix = cocos2dx_csloaderがprefix = userdefine_studentに変更されました
④このクラスのモジュールプレフィックスはLuaで使用されます(モジュールプレフィックスは使用しません)
target_namespace = ccはtarget_namespace =に変更されます
⑤ヘッダーファイルの場所
ヘッダー=%(cocosdir)s / cocos / editor-support / cocostudio / ActionTimeline / CSLoader.h修改是ヘッダー=%(cocosdir)s / cocos / user_define / Student.h
⑥自動生成が必要なクラス名
classes = CSLoaderはclasses = Studentに変更されます
✓クラスで生成されない(無視される)関数。ここでは無視する必要のある関数がないので、それらをクリアします。
skip = CSLoader :: [nodeFromXML nodeFromProtocolBuffers createTimeline nodeWithFlatBuffers createActionTimelineNode createNodeWithDataBuffer createTimelineWithDataBuffer ^ createNode $]
着替える
スキップ=
4.genbindings.pyファイルを変更します
①上記で追加したuserdefine_student.iniをcmd_argsパラメーターで構成します
iniファイルの名前:(iniファイル[]の最初の行のパラメーターに対応し、データが自動的に生成されるフォルダーの名前)'userdefine_student.ini' :( 'userdefine_student'、 'lua_userdefine_student_auto')、\②2番目のパラメータが対応しない場合、設定ファイルにセクションが見つからないというエラーが発生します。
5. genbindings.pyを実行して、C ++中間ブリッジファイルを再生成します。
cocos2d-x \ cocos \ scripting \ lua-bindings \ autoディレクトリにある2つの自動生成ファイルを確認できます。
lua_userdefine_student_auto.hpp和lua_userdefine_student_auto.cpp
6.関数をluaに登録し、libluacocos2dプロジェクトを見つけます
①生成された2つのファイルをプロジェクトに追加します
②CCLuaStack.cppファイルにヘッダーファイル参照を追加します
#include "scripting / lua-bindings / auto / lua_userdefine_student_auto.hpp"init関数で、Luaに登録する関数を追加します(この関数では、auto / manualによって生成されたクラスがそれぞれ登録されます)
register_all_userdefine_student(_state);
7.プロジェクトを再コンパイルし、Luaで使用します
1人の地元の学生= Student:new() 2人のstudent:print()
3.プッシュ
Github:https://github.com/KingSun5
4.結論
ブロガーの記事がよく書かれていると思われる場合は、ブロガーに注意を払い、ブログ投稿を気に入ってください。また、ブロガーの能力は限られています。記事に誤りがある場合は、コメントして批判してください。 。
QQ交換グループ:806091680(中国人)
このグループは、CSDNブロガーのChinarによって作成されました。お勧めします。私もグループにいます!
この記事は復刻版に属しています。元の記事はブログ投稿の上部にあります。有名な原作者の出典を転載してください。!!!