mruby for Pad Game System system.rb ドキュメント
Spriteモジュール
テクスチャを管理するモジュール。テクスチャ画像を読み込み、それをセルに切り分けて管理します。
- Sprite.clear
- ロードされているスプライトすべてを廃棄します。
- Sprite.update
- ムービーテクスチャのアップデートをします。Game.updateで呼んでください。
- Sprite.load (key,String filename[,Boolean loopflag=true,Boolean hasalpha=false])
- スプライトをロードします。rubyのハッシュのキーには数値も文字列もシンボルも使えるので、状況で使い分けてください。
これは画像を読み込む関数です。セルの切り分け等は他の関数で行います。デフォルトでは、全体をセル0とみなします。
filenameにはNMVファイルも指定できます。この場合ムービーテクスチャになります。ムービーテクスチャの場合はループするかどうか、α値を持つムービーかどうかを指定できます。
filenameに"*幅,高さ,色"(例:"*800,600,0xFFFFFFFF")とすれば塗りつぶし画像を指定できます。
- Sprite.setcelldata(key,celldata)
- 読んだスプライトをセルに切り分ける情報を設定する関数です。
jsonで読み込んだ配列データを割り当ててください。
- Sprite.slice(key,Fixnum w,Fixnum h)
- 読んだスプライトをセルに切り分ける関数です。幅と高さで格子状に切り分けます。
- Sprite.gettexture(key) → Texture
- テクスチャオブジェクトを返します。
- Sprite.delete(key)
- 指定されたスプライトを削除します。
- Sprite.copy(key_dest,key_src)
- key_destで指定されたキーのスプライトを作成し、key_srcで指定されたキーのスプライトをコピーします。
テクスチャを加工したいけど元のものも残しておきたい、というようなときに使えます。
- Sprite.draw(key,Fixnum cell)
- キーとセルを指定し、描画します。Draw.fromとDraw.putを内部で呼び出します。
- Sprite.get(key,Fixnum cell) → [Texture tex,Fixnum sx,Fixnum sy,Fixnum sw,Fixnum sh]
- キーとセルを指定し、Textureインスタンス、転送元x,y,幅、高さの情報が入った配列を得ます。見つからなかった場合はnilが戻ります。
- Sprite.isplaying(key)→Boolean
- キーで指定されたスプライトがムービーテクスチャである場合、再生中ならtrue、停止していればfalseを返します。
ムービーテクスチャでない場合は常にfalseを返します。
- Sprite.monotone(key,color)
- スプライトを指定した色(0xAARRGGBB)でモノトーンにします。
- Sprite.mask(key)
- スプライトをアルファチャンネル化(アルファ値だけが残った白色画像)にします。
Taskモジュール
シンプルに実装されたタスクシステムです。
- Task.add(key,task,priority)
- タスクを登録します。ハッシュのキーとTaskObjectを継承したオブジェクトと優先度(小さいほうが先に実行される)を指定します。
実際の登録作業は、Task.updateの開始時に行われます。Task.update中に実行した場合は、次のTask.updateの頭で登録されます。
- Task.delete(key)
- タスクを削除します。
実際の削除作業は、Task.updateの開始時に行われます。Task.update中に実行した場合は、次のTask.updateの頭で削除されます。
- Task.clear
- すべてのタスクを削除します。
実際の削除作業は、Task.updateの開始時に行われます。Task.update中に実行した場合は、次のTask.updateの頭で削除されます。
- Task.update
- すべてのタスクを優先度順に実行します。Game.updateから呼び出してください。
- Task.finalize
- タスクすべてのdeleteを呼び出してタスクシステムを終了します。
Game.finalizeから呼び出してください。
TaskObjectクラス
Taskモジュールに登録するタスクを表現するクラスです。
これをそのまま使うのではなく、継承して使います。
- TaskObject.new→TaskObject
- 初期データは派生クラスをnewで作成する時に構築してください。
- tobj.update
- Task.updateを呼び出すと、それぞれのTaskObjectのupdateメソッドが優先度順(小さいほうが先)に呼び出されます。
- tobj.delete
- タスクが削除されるときにそれぞれのdeleteメソッドが呼ばれます。