|RPGに使う敵AIには組み込みスクリプトが必要なんじゃなかろうか?ということでCocos2dのテンプレートにSquirrelを組込んでみることにしてみた。betaが出てるようだ。ダウンロードして使ってみることにする。ダウンロードしたファイルを解凍すると、以下の画像の様にフォルダのアクセス権がロックされてて中を見る事ができない。読み/書き権限を設定する。このままだと下位のフォルダの権限は変更されないため、下のギアアイコンから「内包している項目に適用」を選択して全てのフォルダ権限を変更する。Cocos2dプロジェクトへの組み込みCocos2dから生成されるテンプレートのlibsフォルダの下に先ほど展開したSQUIRREL3フォルダをコピーする。Sourcesフォルダ内に新規にSQUIRREL3グループを作成し、更にその中に以下の表の様なグループを作成しファイルをドラッグ&ドロップで追加する。内のsqstdrex_old.cppを除いた全ファイルsqstdrex_old.cppを入れておくとコンパイル時にエラーになるので外した。これで組み込みは完了。Object-CからSquirrelスクリプトの呼び出しテストするスクリプトはこんなカンジ。ここからはCの実装になる。最初にVMマシンを生成する。//1024はコールスタックサイズ続いて、エラーレポートやprintの出力先関数を登録する。functionプリント関数は以下のようになる。続いて、VMマシンにスクリプトファイルを読み込ませる。0);読み込みに成功したら、スクリプト内関数のfoo()を呼出してみよう。size}かなり端折って説明してしまったので、より詳細な解説を知りたい人は以下の資料を参考にしてみてください。参考資料:http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/EmbeddingGettingStarted.htmlSquirrelスクリプトからC関数の呼び出しついでにスクリプトからC関数を呼出す方法。眠いので詳細は後ほど。組み込みスクリプトの候補としてPythonも考えたがソースコード量が多い点がネックとなり、今回は見送りました。ヘッダ+ソースで500KB程度2MBもあったらゲーム本体のソースより多くなりそうな気がする。組み込み済みのプロジェクト今回の説明のためにCocos2dのテンプレートにSquirrelを組込んでみたサンプル。initからtest.nutをロードしてfoo()関数を呼出しています。https://files.me.com/penguin.dream/pzk5zm※リンクは3ヶ月間のみ有効です。|Cocos2dでよくお世話になるCCSpriteについて覚え書き。addChild:sprite];CCTexture2DからCCSpriteを生成する画像のサイズは2の階乗になってなくてもOK。addChild:sprite];子階層のCCNodeを全て破棄する第一引数をYESにすると、actionとcallbackもリムーブされる。Dev.っすプログラム未経験者がiPhoneアプリを開発するよ。iPhoneyaottiの日記hirakiucの日記salexkiddの日記rokujyouhitomaの。