プログラミングの魔物

エラー、バグ、仕様変更と戦うブログ

cocos2d-x

cocos2d-x JavaScriptのサンプルを動かしてみた所感

JavaScriptは結構好きな言語。 プログラムは一行でも短く書けると嬉しい病気なので、JavaScriptのように言語制約が緩くて変態文法が可能な言語は好物と言える。cocos2d-xのjsテンプレートはJavaScriptでiOSゲームを開発できる。 組み込みにはSpiderMonkeyを…

cocos2d-x LuaでBox2D+sqlite3

OpenQuickというライブラリを組み込むことでBox2Dとsqlite3のLuaAPIを利用できる。 http://www.cocos2d-x.org/news/88MITライセンスでオープンソース。 まだ試してないけど期待。ZeroBrane StudioのIDEで開発できるらしい。 ZeroBrane Studioは使用したこと…

iphone上でLuaのバイトコードを生成する

cocos2d-xで使うLuaをバイトコードへ変換する方法を探ってみた。 バイトコードへ変換するとロード速度が上がる。また、難読化にも繋がる。 一般的な方法ではバイトコードの生成にluacを使う。 コマンドをたった1行打つだけでLuaのバイトコードを生成すること…

cocos2d-x Lua RPGのサンプルほぼ完成

iPhone/iPad/iPod touchプログラミングバイブルのサンプルゲームをLuaで組んでみる。の続き(iOS5版のサンプルプログラム) マップ移動、戦闘、ゲームオーバー、エンディングと言ったひと通りのロジックを作成した。今回のRPGの作成ではC++側はノータッチ。…

vimでLuaのソースからC関数のソースへジャンプ

Luaで組んでいるとcocos2d-xの関数のソースを見たくなることがよくある。 今まではxcodeを同時起動して探していたけれど、ctagsで探せるようになったのでやり方をメモ。 若干重いのでまだ試用段階。 MacPortsでExuberant Ctagsを入れる Exuberant Ctagsのイ…

cocos2d-x Luaでゲーム作り2

RPGの続き マップ移動と当たり判定を組んだ あとはパラメータと戦闘を組んで終わり。 ちょっとアレっと思ったのはgetPostionがCCPoinstではなく複数の戻り値を返すこと。 CCPointで欲しい時はobj:getPositionLua()を呼ぶか、cpp(obj:getPosition())のような…

cocos2d-x Luaでテクスチャアトラス

今回はこちらのサイトを参考にした。 cocos2d-xにおいてTexture Atlasを利用する方法(iOS, Android)C++でのコードは次のようになる。以下転載 アプリで画像ファイルを用意する場合、Texture Atlasを利用することで メモリを大幅に節約することが可能です。…

cocos2d-x Luaでゲーム作り

iPhone/iPad/iPod touchプログラミングバイブルのサンプルゲームをLuaで組んでみる。手元にあるiOS5版はアクションゲームとRPGのサンプルが載っているので、それをcocos2d-x Luaで書いてみる。 そのまま移植してもつまらないので、とりあえず外部仕様を見な…

cocos2d-x LuaでCCNodeにLuaのコールバック関数を登録する方法

cocos2d-xでLua関数をコールバックする時の参考用にメモ。ソースを読んでみるとCCNodeは最初からLua関数をコールバックできるように作られている。 ここに説明が書いてある(しかしサンプルは古い様子) http://www.cocos2d-x.org/projects/cocos2d-x/wiki/N…

cocos2d-x覚書

CCArrayから取得したオブジェクトを使用するにはtolua.castする local str = arr:objectAtIndex(0) str = tolua.cast (str, "CCString") http://www.cocos2d-x.org/boards/11/topics/14344 BGMが流れていない場合でもバックグラウンド時には SimpleAudioEngi…

cocos2d-x2.0-xでRetina Display対応

cocos2d-xではサフィックス(Suffix)によるリソースの切り替え(@2xや-hd)を推奨していない。 cocos2d-xはクロスプラットフォーム開発環境なのでiOSだけではなくAndroidにも対応している必要がある。 Androidのリソース管理方法としてサフィックスは適して…