動機
cocos2d-jsで作ったものを公開するのにひとつにまとまった cocos2d-****.min.js が欲しかった。
作り方
Cocos2d-js 3.0alpha2 だとminifyできなかったので、developの最新を使う。
自分が使ったのはこれ→
https://github.com/cocos2d/cocos2d-html5/commit/4bf7d102cb8ed2f4ca1265923c082cd8fbfbb93d
だけど、これ以降ならなんでもいけるはず。
ant が必要なのでhomebrewなりyumなりapt-getなりでいれておく。あとJavaも。
git clone git@github.com:cocos2d-html5/
git checkout develop
cd tools
ant
すると、cocos2d-html5/lib にcocos2d-html5-v3.0-alpha2-min.jsというminify化されたファイルができている。
が、このままこのmin.jsを使うとエラーが出るのでbuild.xmlを変更する必要がある。
実はminify化するのにいくつかファイルが足りてない。
次のように変更して、antしよう。
diff --git a/tools/build.xml b/tools/build.xml
index 4b76a9f..580f008 100644
--- a/tools/build.xml
+++ b/tools/build.xml
@@ -21,6 +21,7 @@
<file name="cocos2d/core/platform/CCConfig.js"/>
<file name="cocos2d/core/platform/miniFramework.js"/>
<file name="cocos2d/core/platform/CCMacro.js"/>
+ <file name="cocos2d/core/platform/CCTypesWebGL.js"/>
<file name="cocos2d/core/platform/CCTypes.js"/>
<file name="cocos2d/core/platform/CCEGLView.js"/>
<file name="cocos2d/core/platform/CCScreen.js"/>
@@ -65,6 +66,7 @@
<file name="cocos2d/core/CCDrawingPrimitivesCanvas.js"/>
<file name="cocos2d/core/CCDrawingPrimitivesWebGL.js"/>
<file name="cocos2d/core/labelttf/LabelTTFPropertyDefine.js"/>
+ <file name="cocos2d/core/labelttf/LabelTTFWebGL.js"/>
<file name="cocos2d/core/labelttf/CCLabelTTF.js"/>
<file name="cocos2d/core/CCActionManager.js"/>
<file name="cocos2d/kazmath/utility.js"/>
@@ -245,6 +247,7 @@
<file name="cocos2d/core/platform/miniFramework.js"/>
<file name="cocos2d/core/platform/CCMacro.js"/>
<file name="cocos2d/core/platform/CCTypesPropertyDefine.js"/>
+ <file name="cocos2d/core/platform/CCTypesWebGL.js"/>
<file name="cocos2d/core/platform/CCTypes.js"/>
<file name="cocos2d/core/platform/CCEGLView.js"/>
<file name="cocos2d/core/platform/CCInputManager.js"/>
@@ -289,4 +292,4 @@
</sources>
TODO:プルリク出す
使い方
使用する際は、index.html でscriptで指定するロードするファイルをcocos2d-html5-v3.0-alpha2-min.jsに変えるといい。もちろんcocos2d-js/libから使いたいディレクトリにコピーする。
- <script src="../cocos2d-html5/CCBoot.js"></script>
+ <script src="./cocos2d-html5-v3.0-alpha2-min.js"></script>
<script src="main.js"></script>
cocos2d-js 2 系はconfigにSingleEngineFile:"cocos2d.min.js" みたいに指定してたけど、3.0からはconfigに書けなくなっている(ちなみに、cocos2d.jsに書いていた設定自体が3.0からはproject.jsonに書くことになっている http://www.cocos2d-x.org/docs/manual/framework/html5/v3.0/project-json/en )。
だが、試行錯誤でうまくいっただけなんで正しくないかも…(ただしぐぐっても情報がない)。
感想
cocos2d-js 3.0 の変更箇所はこのページにまとまってる。けっこうかわってるなー
http://www.cocos2d-x.org/docs/manual/framework/html5/release-notes/v3.0a/upgrade-guide/en