squirrel
CEDEC2008でのSquirrelの講演を見ました。 スクリプタだけではなく、プログラマもSquirrelで一緒に開発。 3割がC++コードで7割りがスクリプト。プログラマも後半はほとんどSquirrelで作業しつつたまにC++実装してバインディング。途中で面倒になってきたの…
#pragma optimize("",off) static void dummyfunc(){}//最適化抑制のための関数 #pragma optimize("",on) struct Foo { int num; Foo() { num = 0; } void inc() { ++num; dummyfunc(); } }; Foo foo; for(int Li=0;Li<1000*1000;++Li){ foo.inc(); } O2でビ…
モデルのポリゴンデータを.nutで記述するつもりなので、手始めにsquirrelのデータへのアクセスを容易にするためのオブジェクト&イテレータを実装してみた。 return { NAME="カイン" JOB="竜騎士" EQUIP=["グングニルの槍","クリスタルアーマー","リボン"] }…
ベクトル組み込みはできた。コンストラクタによくあるオーバーライドに関してはメソッド名を変えることでスルー。他のクラスを登録しようとしたら、キャストにミスってるらしくvfptrがあるとうまくメソッドが呼ばれない。あとちょっと。。。 2008.09.16 追記…
忘れてた。 class model { void setvisible(bool flag); bool isvisible() const; }; class loader { public: model& loadmodel(const char* path); }; vm.creg<model>("Model") .variable("visible",&model::isvisible,&model::setvisible); vm.creg<loader>("Loader") .fu</loader></model>…
consttableの存在がよくわからんかったのでここにメモしておきます。 enum hoge { one=1, two=2, san=3, }; const uuu=11; このenumとconstはroottableやregistrytableと並列に存在するconsttableへスクリプトコンパイル時に蓄えられます。ここでわからない…
http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?rev=52&root=shive&view=rev だいぶできた。 //クラスを登録 creg<aaa>(hvm,"aaa") .function("getstatic",&aaa::getstatic) .function("somemsg",&aaa::somemsg) .function("getname",&aaa::getname) .function("</aaa>…
http://svn.sourceforge.jp/svnroot/shive/junk/diary/2008/20080906-test001.cpp 簡単なclassバインディング書いてみた。関数のオーバーロードとかちゃんとやるべきだろうか。必要になってから考えよう。メンバ変数へのアクセスも対応したいなぁ。
http://svn.sourceforge.jp/svnroot/shive/junk/diary/2008/20080906-test100.nut 構文習得がてらつらつら書いてみた。luaもC++も好きなので気持ちがいいです。早くゲームに使ってみたい。 以前luaを使っていたときにもすでにcoroutine(fiber)の仕様はあった…
http://svn.sourceforge.jp/svnroot/shive/junk/diary/20080904/sqlexer.cpp ReadStringで文字列をパースしているようなので、leadbyteが来たらもう1文字を連続して読むように変更しました。ちゃんとエラーチェックしないとごみデータを渡したときにおかし…
昔luaにあったdostring。あれなんでなくなったんだろう?squirrelで書くとしたらこんな感じ。 //printハンドラ static void print( HSQUIRRELVM hvm, const SQChar* format, ... ) { va_list args; va_start( args, format ); vprintf_s( format, args ); va…
http://svn.sourceforge.jp/svnroot/shive/sandbox/sqtest/test000.cpp以前luaを使っていたのですんなり入れそう。 APIセットはluaを踏襲して完全に+αした感じになってます。配列、クラスなどが増えているのと、スロットの初回代入の違いなどを覚えればOK…