Skip to content
Legokichi Duckscallion edited this page Apr 28, 2015 · 1 revision

cuttlebone.Shell

new Shell(directory: { [filepath: string]: ArrayBuffer; }): ShellObject

コンストラクタです。

引数directoryのfilepathキーはdescript.txtがあるデリレクトリ直下のパスを指定してください。

var nar = new Nar();
nar.loadFromURL("./node_modules/ikagaka.nar.js/vender/mobilemaster.nar", function (err){
  if(!!err) return console.error(err.stack);

  if(nar.install["type"] === "ghost"){
    var shellDir = nar.getDirectory(/shell\/master\//);
    console.log(Object.keys(shellDir)); // => ["descript.txt", "surface0.png", "elements/element0.png", ..., "surfaces.txt"]
    var shell = new Shell(shellDir);
  }
});

ShellObject.descript: { [key: string]: string; }

descript.txtの中身をキーバリュー形式で持っています。

console.log(shell.descript["name"]); // -> 'the "MobileMaster"'

Shell#load(): Promise<Shell>

descript.txtやsurfaces.txt、surface*.png、surface*.pnaファイルを読み込みます。

shell.load().then(function(){
  console.log(shell);
});

Shell#attatchSurface(canvas: HTMLCanvasElement, scopeId: number, surfaceId: string): SurfaceObject|null

指定したcanvasへscopeIdのsurfaceIdのサーフェスの描画を行います。 サーフェスIDはサーフェスエイリアスが考慮されます。 該当するサーフェスが存在しなかった場合、nullが返ります。

var canvas = document.createElement("canvas");
var surface = shell.attachSurface(canvas, 0, "0"); // \0\s[0]
document.body.appendChild(canvas);

SurfaceObject#destructor(): void

canvasへのサーフェスの描画を止めて、canvasへのあらゆるイベントハンドラを解除します。 サーフェスを変更する前に必ず呼び出してください。

SurfaceObject#render(): void

サーフェスを再描画します。

SurfaceObject#play(animationId: number, callback?: () => void): void

animationIdのアニメーションを再生します。 再生後にcallbackが呼ばれます。

SurfaceObject#stop(animationId: number): void

animationIdのアニメーションを停止します。

SurfaceObject#bind(animationId: number): void

animationIdの着せ替えを着せます。

SurfaceObject#unbind(animationId: number): void

animationIdの着せ替えを脱がせます。

SurfaceObject#yenE(): void

yen-eタイミングのアニメーションを再生します。

SurfaceObject#talk(): void

talkタイミングのカウンタを進め、指定回数呼び出されるとtalkタイミングのアニメーションを再生します。