Poppin Games Engineer Blog

ポッピンゲームズジャパン株式会社のエンジニアのブログ。弊社製品やcocos2d-x、AWSに関する情報を中心に発信しております。

cocos2d-x ver 2.1.4 が神アップデートすぎる件について

ポッピンゲームズジャパンの小林です

ひっそりリリースされてた cocos2d-x ver 2.1.4がスゴイ!のでご紹介です。

まずは JavaScript Bindings 関連。リリースノートのハイライトにも入ってますが、

ついにJavaScriptから通信が…!
テストプロジェクト(samples/Javascript/TestJavascript/proj.ios/TestJavascript.xcodeproj)
を開くか、ファイルを直接(samples/Javascript/Shared/tests/XHRTest/XHRTest.js)
見てみてください。GETとPOSTを実行してます。

WebSocketについても samples/Javascript/Shared/tests/ExtensionsTest/NetworkTest/WebSocketTest.js にサンプルがあります。
夢が広がりますね!

細かい機能はもうちょっと追ってみないといけませんが、
通信機能が使えるようになった事で JavaScript での本格的な開発もかなり現実的になってきたんじゃないでしょうか。

Javascript byte code 対応の方は、tools/cocos2d-console/console/cocos2d.py で .jsc ファイルを生成できます。

create_project.py でプロジェクトを作り、Resources/以下に *.js ファイルをまとめて、以下のようにして Resources/src/game.jsc を作る事が出来ました。(console ディレクトリをプロジェクトのディレクトリへコピーしてきています)

console/cocos2d.py jscompile -d Resources/src -s Resources/ -o game.js -j console/bin/compiler_config_sample.json -c

実行時は *.jsc ファイルを指定します。

ScriptingCore::getInstance()->runScript("src/game.jsc");

ちなみに cocos2d-x ver 2.1.4 では SpiderMonkey v21(Riq氏の改造版、かな?)が使用されているようですが、
本バージョンでのバイトコード化のメリットの程は…あんまりアピールが書いてないので要調査です。
バイトコードの生成方法もなんですが、ちょっとまだドキュメント不足感がありますね。

JavaScript以外では、「CCLabelTTF supports shadows and stroke」が素晴らしい!
これで GlyphDesignerなどでフォント作らなくても、標準でそこそこの見栄えの文字が表示出来ます。
特に多言語対応する際、全言語分のフォント・画像リソースを用意しなくていいのがすっごい楽です。

これらはJavaScriptからも使えます。
例えばシャドウ付きで赤い縁取りのラベルを作るなら、こんな風にすれば!

ttfLabel.enableShadow(cc.size(4,-4),0.5,0.8,true);
ttfLabel.enableStroke(cc.c3b(0xff,0,0),1.0,true);

f:id:poppingames:20130617155239j:plain

…strokeとshadowを併用するとなぜかラベルが透けて影がうっすら見えてしまうようです。
うーん残念…。

その他気になったポイントとしては、CCHttpRequestが大改造されてます。
C++で開発する時、結構嬉しいかも。

  • コールバックが「callfuncND_selector」だったのが「httpresponse_selector」になり使いやすく
    • CCHttpClientとCCHttpResponseを引数にとるコールバック関数になりました
  • POST、GET以外にPUTとDELETEが投げられるようになった
  • レスポンスヘッダが取得出来るようになった

中々いい感じじゃありませんかね!
互換性無くなってるので2.1.3で使っていた人は要注意ですが。
あとはhttps対応、通信の並列化、Cookie対応あたりが標準で入ってくれると嬉しいところ。

全体としては、JavaScript Bindings にすごーく力が入ってます。
あとはデバッガー含む開発環境が揃ってくればいよいよ…という感じでしょうか。

CocosBuilderJavaScriptサポートを強化中で、デバッガー入ったりJSエディタ入ったりしてます。id:seasons 畑 圭輔氏も、Sublime Textで動作するデバッガーの開発中(https://twitter.com/Seasons/statuses/334025458725318656)との事で、こちらも楽しみですね!



★この記事にご興味頂けた方、Facebookの「いいね」Twitterでの拡散、
 Bookmarkボタンを押して頂けると光栄です。
 この記事の上部で、ワンクリックで可能です。

★ポッピンでは人材募集中です

詳しくはこちら