しろログ

日々巡り会ったものの感想・レビュー

Month: 11月 2015

Cocos2d-x – 無料でTexturePacker的な

なんとなく画像を連結してplistが欲しいだけなのに、TexturePackerを買うのはちょっと・・
という方向け。

libGDXのTexture packerを使って、連結画像とplistを作ります。
Cocos2d-JSでも使えます。

mac向けですが、javaとperlが動かせればwindowsなどでもOK。

libGDXのTexture packerについては、詳しいオプション含めて、
GitHub libgdx/libgdx – Texture packer
に書いてありまして、nightly buildでもrunできるんだぜ、みたいに書いてありますが、自分の環境では、

エラー: メイン・クラスcom.badlogic.gdx.tools.texturepacker.TexturePackerが見つからなかったかロードできませんでした

みたいな感じに・・

なのでreleaseビルドをダウンロードします。
libGDX – download
執筆時は libgdx-1.6.1.zip でした。

この中にある
gdx.jar
extensions/gdx-tools/gdx-tools.jar
の2つを適当なディレクトリにコピります。

あとはそこで

$ java -cp gdx.jar:dx-tools.jar com.badlogic.gdx.tools.texturepacker.TexturePacker 画像のディレクトリ [出力先ディレクトリ] [出力ファイル名]

を実行するだけ。

出力ファイル名を省略すると、pack.pngファイルと、pack.atlasというファイルが出来上がります。
このpack.atlasファイルを
libGDXのTexturePackerで作った.atlasファイルをcocos2dxで読み込める.plistに変更するperlスクリプト
で変換してやります。

具体的には上のページのスクリプトを convert-plist.pl などの名前で保存し、

$ perl convert-plist.pl /path/to/pack.atlas /path/to/output-dir

と叩くだけです。

これでpack.plistができます。

ついでにCocos2d-JSでの使用例も書いておくと、

resources.js内
var res = {
    ...
    pack_plist : "res/pack.plist"
};

scene.js内
cc.spriteFrameCache.addSpriteFrames(res.pack_plist);

var sprite = new cc.Sprite("#pack/元のファイル名.png");

でOK。(#pack/のところはlibGDXでの出力ファイル名次第で変わります)

詳しくはCocos公式も参照のこと。

ロボバトル

新作ゲーム、ロボバトルをリリースしました。
Android – Google Play
iOS – App Store

マシンをカスタム、ロボをトレーニング、自動でバトル!という感じです。

内容紹介動画も作ってみました。

今までCocos2d-xのC++でやってきましたが、バージョン3.7よりJavaScriptが正式に統合されたことで移行してみました。
Cocos2d-JSを利用することでHTML5でのパブリッシュが可能になり、Android/iOS/Web版を同時進行で作成できます。
Web版は帯域の都合上、おおっぴらに公開していませんが、ネイティブと同様の動きをそのまま試してもらえるので、プロトタイピング&フィードバックにとても役立ちました。

あと基本的にはメモリ系をあまり気にしなくてよかったのが嬉しいところ。
C++は、ほんと熟練しないと適切なコードにならない気がします・・

ちなみにゲームを作ってると、一見簡単そうなのにちゃんとやると面倒な、アルゴリズム的なハマりどころがあるもので、今回の場合は回転する矩形の当たり判定。
Cocosに実装されてるんじゃないかと思ったけど、ぱっと見なさげなので、結局自前で実装することに。
文系プログラマにベクトルの内積を計算する日が来ようとは思いませんでした・・

全体としては、シンプルでコンパクトな小品という印象ですが、
企画から、グラフィック、コーディング、効果音とBGMの選定など、制作期間はコミコミで2か月半ほど。
よくよく考えたら、サウンドまで入ったゲーム作りは初めてかもしれないですね。

ちなみに本作はツイッターのフォロワーの方のリクエストだったのですが、その真髄を理解するまでに少し時間がかかってしまって、似て非なるものができあがった気がします。すみません!

Android – Google Play
iOS – App Store

© 2017 しろログ

Theme by Anders NorenUp ↑