API Docs for: 0.0.1

Class handyGraphic.Sprite

Class defined in: handyGraphic.js:1199

Sprite オブジェクトは,図形や画像を表示するための視覚要素です. スプライトオブジェクトはStratgy,Commandデザインパターンを取り入れています. それぞれのデザインパターンの詳細については,他の資料を参照してください.

スプライトは自身を自分ではペイントせず,別のオブジェクトに委譲します. スプライトの描画はペインターオブジェクトを作成することによって実現します. これはStrategyデザインパターンの一例です. ペインターはスプライトの引数 painter としてスプライトに紐づけられます. ペインターの詳細はpaint メソッドに記載しています.

スプライトの振る舞いもスプライト内では定義せず,ビヘイビアオブジェクトを作成します. ビヘイビアはスプライトの振る舞いをカプセル化し,スプライトに対するコマンドのように扱われます. これはCommandデザインパターンの一例です. スプライトはビヘイビアを実行でき,ビヘイビアの配列を保持することができます. ビヘイビアの詳細はupdate メソッドに記載しています.

handyGraphic.Sprite( name, painter, behaviors )
handyGraphic.js:1199
Parameters:
  • name <Object>

    スプライトの名前

  • painter <Object>

    スプライトをペイントするオブジェクト

  • behaviors <Object>

    スプライトの振る舞いの配列

Example
var isFall = true,
    ballPainter = {
        paint: function (sprite, win) {
            Hg.Clear();
            Hg.CircleFill(sprite.x, sprite.y, 20);
        }
    },
    ballToFall = {
        execute: function (sprite, win, time) {
            if (isFall) { sprite.y -= 1; } 

            if (sprite.y <= 20) {
                isFall = false; 
            }
        }
    },
    ball = new Sprite("ball", ballPainter, [ ballToFall ]);

ball.x = 150;
ball.y = 400;

var scene1 = new Scene();
scene1.update = function () {
    ball.update(win, 1);
};
scene1.draw = function () {
    ball.paint(win);
};
scene1.start();
paint( win )
handyGraphic.js:1334

スプライトが保持するペインターを用いてペイントする. イメージペインターを実装することで,スプライトは画像を扱うことも可能です.

ペインターはvoid paint(sprite, win) というメソッドを必ず実装する必要があります. paintメソッドを備えていれば,ペインターの実装は開発者の自由にすることができます. ペインターは基本的に,実行時にスプライトに割り当てることが出来る交換可能なペイントアルゴリズムです. この仕組みはペインターがStrategyデザインパターンの一例だということを意味しています.

Parameters:
  • win <Object>

    スプライトを描画するウィンドウ

Example
// ペインターの一例
var ballPainter = {
    paint: function (sprite, win) {
        Hg.Clear();
        Hg.CircleFill(sprite.x, sprite.y, 20);
    }
};
var ball = new Sprite("ball", ballPainter);
ball.paint(win); // スプライトを描画する
update( win, time )
handyGraphic.js:1363

スプライトのビヘイビアを追加された順番で実行する.

ビヘイビアはvoid execute(sprite, win, time) というメソッドを必ず実装する必要があります. executeメセッドを備えていれば,ビヘイビアの実装は開発者の自由にすることができます. ビヘイビアはスプライトによって実行され,実行されることでスプライトに対する振る舞いを実現します. また,ビヘイビアは配列で保持しているため,いくつでも割り当てることができ,そしてビヘイビアを組み合わせることもできます. この仕組みはビヘイビアがCommandデザインパターンの一例だということを意味しています.

Parameters:
  • win <Object>

    スプライトを描画するウィンドウ

  • time <Object>

    実行感覚

Example
// ビヘイビアの一例
var isFall = true,
var ballToFall = {
    execute: function (sprite, win, time) {
        if (isFall) { sprite.y -= 1; } 
 
        if (sprite.y <= 20) {
            isFall = false; 
        }
    }
};
var ball = new Sprite("ball", ballPainter, [ ballToFall ]);
ball.update(win, time); // 落下の振る舞いを実行する
animating <Boolean>
handyGraphic.js:1327

スプライトがアニメーション中であるか示すブール値

behaviors <Array>
handyGraphic.js:1271

スプライトの振る舞いの配列

height <Number>
handyGraphic.js:1299

スプライトの高さ

name <String>
handyGraphic.js:1257

スプライトの名前

painter <Painter>
handyGraphic.js:1264

スプライトをペイントするオブジェクト

velocityX <Number>
handyGraphic.js:1306

スプライトのx方向の速度

velocityY <Number>
handyGraphic.js:1313

スプライトのy方向の速度

visible <Boolean>
handyGraphic.js:1320

スプライトが可視であるか示すブール値

width <Number>
handyGraphic.js:1292

スプライトの幅

x <Number>
handyGraphic.js:1278

スプライトの左下隅のx座標

y <Number>
handyGraphic.js:1285

スプライトの左下隅のy座標