4

2D ブロックから構築された 2D レベルがあるとします。それらのいくつかは箱です。

ボックスはまったく同じに見えます。変わりはない!あるボックスのグラフィックを別のボックスに「コピー」または複製するにはどうすればよいですか? ボックスの唯一sprite.xの違いは、とsprite.yの値が異なることです。私はおそらくそのように行くでしょう:

public static function drawBox(graphics:Graphics):void
{
    graphics.clear();
    // draw box
}

drawBox(box1.graphics);
drawBox(box2.graphics);
drawBox(box3.graphics);

テクスチャは使用されず、ベクター描画のみが使用されます!

これは良い習慣ですか?同じことを達成する別の方法はありますか?


更新:スプライトをランダムに描画することがあります (1 つのスプライトとそのすべての属性のインスタンスが多数必要な場合、スプライトを再描画するのは非常に困難です)。

4

2 に答える 2

7

機能を使用できますcopyFrom

このようなもの:

var s:Sprite = new Sprite();
s.graphics.beginFill(0);
s.graphics.drawRect(0, 0, 100, 100);
s.graphics.endFill();
addChild(s);

var s2:Sprite = new Sprite();
// Copyfrom accepts a `Graphics` object.
s2.graphics.copyFrom(s.graphics);
s2.x = 100;
s2.y = 100;
addChild(s2);

copyFrom () に関するドキュメントをご覧ください

于 2013-08-03T23:31:30.987 に答える