読者です 読者をやめる 読者になる 読者になる

cocos2d-x x-pluginのメモ(3)

自メモ)
カスタムPlugin&IOS側もつくらないと駄目っぽいのでとりあえずエントリだけ作っておく



カスタムPlugin

概略は 間違ってないんだけど何点か注意点はあって

  • 既存のPluginはjarがsdkというフォルダに入れてるがlibsに変更
  • ForManifest.xml というファイル、これはあくまでコピペ用のサンプルらしい
    • これはcocos2d-xの仕組みで自動的にくっつけてくれると夢想していた時期もありました(苦笑

PS)
 TLで補足いただきました。感謝です

自分もintegrationガイドだけ見てて

  • publish.sh 等でコンパイルするまで
  • pluginをlibrary-projectとしてimport

toolsのフォルダの存在気付かなかった(汗。
うーん。やっぱりdocumentが無いと厳しいんだよな(苦笑
あとで評価はしてみよう。
=>
一応

  • $COCOS2DX_HOME/plugin/tools/toolsForGame/addPluginForGame.sh
    # get system dir
    SYS_TARGET_ROOT=$(getPathForSystem ${TARGET_ROOT})
    SYS_SHELL_DIR=$(getPathForSystem ${SHELL_DIR})
    SYS_PROJ_DIR=$(getPathForSystem ${GAME_PROJECT_DIR})
    
    # Modify .project file (link publish directory to the game project)
    PROJECT_FILE_PATH="${SYS_PROJ_DIR}"/.project
    python ${SYS_SHELL_DIR}/modifyProject.py "${PROJECT_FILE_PATH}" "${SYS_TARGET_ROOT}"
    
    # Modify .classpath file (link jar files for game project)
    CLASSPATH_FILE="${SYS_PROJ_DIR}"/.classpath
    python ${SYS_SHELL_DIR}/modifyClassPath.py "${CLASSPATH_FILE}" "${NEED_PUBLISH}" "${SYS_TARGET_ROOT}"
    
    # Modify AndroidManifest.xml file (add permission & add activity info)
    MANIFEST_FILE="${SYS_PROJ_DIR}"/AndroidManifest.xml
    python ${SYS_SHELL_DIR}/modifyManifest.py "${MANIFEST_FILE}" "$2" "${SYS_TARGET_ROOT}"

となってるのでざっくり見てみたけど

を編集する想定らしい。

これADT18以前じゃないと動かない気がする

  • この修正方法だとlibraryproject形式じゃないからデバックできない
    • これならjarをmainProjectにコピーする形のほうがいい気がする
  • res 辺りに置いたリソースが参照されない。
    • もちろん公式docのようにlibrary-projectで参照するなら参照は可能

上記の addPluginForGame.sh 遣ったら環境壊れるはず
これjsbとか改変しない用なのかな?
あと
 lib/XXX.jar や sdk/XXX.jar ってeclipse上での参照
apk転送時に同梱されずにコケるはずなんだが
あんまりフォーラムで見ないということは
Andでやってる人殆ど居ないのかもね−(汗

 まあIDE使わない前提であれば
各pluginの build.xml 内で

<import file="${plugin.dir}/tools/android/build_common.xml" />
    <!-- link jar files -->
    <property name="myjar.libs.dir" value="./sdk" />
    <target name="-pre-compile" depends="check-dependens">
        
        <path id="depend.projects.jar">
            <fileset file="${project.jar.1}" />
            <fileset file="${project.jar.2}" />
        </path>
        
        <if condition="${jarExisted}">
            <then>
                <path id="project.all.jars.path">
                    <path refid="depend.projects.jar" />
                    <fileset dir="${myjar.libs.dir}" includes="*.jar" />
                </path>
            </then>
        </if>
    </target>

って形でsdkディレクトリがあればpath通す処理はしてるのでant buildはOKだとは思う


コレには凄い同意。。winで動かそうとして辛い=>macでな流れで遣ってたりしてるし。自分は

でもこの人ぐらいしか3系のつぶやき見たこと無いな−。*1
JSBでやってるっていってる人自体は
ちらほらTL上でも見ることは見るけど。。。





TLメモ @ さん)




TLメモ)

*1:すごく感謝してます