円を描く

丸い正円を描いてみましょう。コード量も少なく一番簡単に描ける図形です。

書式

Graphicsオブジェクト.drawCircle(中心のX座標, 中心のY座標, 半径);

サンプル

var shape = new Shape();
shape.graphics.beginFill("DarkRed"); // 赤色で描画するように設定
shape.graphics.drawCircle(0, 0, 100); //半径100pxの円を描画
stage.addChild(shape); // 表示リストに追加

※詳しい使い方は「公式ドキュメント(英語)」を確認ください。

四角形を描く

四角形を描いてみましょう。

書式

Graphicsオブジェクト.drawRect(X座標, Y座標, 横幅, 高さ);

サンプル

// 四角形を作成します
var shape = new createjs.Shape();
shape.graphics.beginFill("DarkRed"); // 赤色で描画するように設定
shape.graphics.drawRect(0, 0, 200, 100); // 長方形を描画
stage.addChild(shape); // 表示リストに追加

※詳しい使い方は「公式ドキュメント(英語)」を確認ください。

角丸四角形を描く

4隅を丸くした四角形を角丸四角形と言います。角丸四角形を描いてみましょう。

書式

Graphicsオブジェクト.drawRect(X座標, Y座標, 横幅, 高さ, 角丸の幅, 角丸の高さ);

サンプル

// 角丸四角形を作成します
var shape = new createjs.Shape();
shape.graphics.beginFill("DarkRed"); // 赤色で描画するように設定
shape.graphics.drawRoundRect(0, 0, 100, 100, 20, 20); //100pxの正方形を描画。20pxの角丸を設定。
stage.addChild(shape); // 表示リストに追加

※詳しい使い方は「公式ドキュメント(英語)」を確認ください。

多角形の描画

drawPolyStar()メソッドを使うことで多角形を描くことができます。第1~3引数はdrawCircle()メソッドと同じですが、第4引数が頂点の数です。第5引数の谷の深さは谷の深さで、0以上1未満の数値を設定します。デフォルト値の0を渡すと谷はなくなり、正多角形になります。第6引数は頂点の角度で、デフォルト値0ではx軸の正方向つまり時計の3時の方向を起点に描かれます。y軸の負つまり時計の12時の方向から描くには、-90度を起点の角度とします。

書式

Graphicsオブジェクト.drawPolyStar(x座標, y座標, 半径, 頂点数, 谷の深さ, 起点角)

サンプル

var poly = new createjs.Shape();
poly.graphics.beginFill("DarkRed"); // 赤色で描画するように設定
poly.graphics.drawPolyStar(0, 0, 75, 5, 0.6, -90); //75pxの星を記述
stage.addChild(poly); // 表示リストに追加

※詳しい使い方は「公式ドキュメント(英語)」を確認ください。

任意の図形の描画

moveTo()メソッドとlineTo()メソッドを使うことで、自由に頂点を設定して描くことができます。moveTo()メソッドで現在の描画位置を移動し、lineTo()メソッドで現在の描画位置から次の描画位置まで、現在の線のスタイルを使用して線を描画します。

書式

Graphicsオブジェクト.moveTo(x座標, y座標);
Graphicsオブジェクト.lineTo(x座標, y座標);

サンプル

var obj = new createjs.Shape();
obj.graphics.beginFill("DarkRed"); // 赤色で描画するように設定
obj.graphics.moveTo(0, 0); // (0,0)座標から描き始める
obj.graphics.lineTo(100, 0); // (100,0)座標まで辺を描く
obj.graphics.lineTo(0, 100); // (0,100)座標まで辺を描く
obj.graphics.lineTo(0, 0); // (0,0)座標まで辺を描く
stage.addChild(obj); // 表示リストに追加

※詳しい使い方は「公式ドキュメント(英語)」を確認ください。

コラム : ドットシンタックス

また CreateJS の特徴として、ドット.をつなげて記述するチェーンメソッドで記述することも可能です。チェーンメソッドで記述するかしないかはプログラマーの好みですので、好きな方で記述ください。

var shape = new createjs.Shape();
shape.graphics.beginFill("#00ff00") // 緑色で描画するように設定
	.setStrokeStyle(4) // 4pxの線幅を設定
	.beginStroke("#0000ff") // 青色の線を描画するように設定
	.drawCircle(0, 0, 100); //半径100pxの円を描画
stage.addChild(shape); // 表示リストに追加

createjs.Shapeクラスは、WebGLを活用するStageGLクラスでは「公式ドキュメント(英語)」に記載のとおり、レンダリングされないので注意ください。

次の記事へ