図形ノード
Altseed2には図形を描画するノードが存在します。 描画できる図形は円弧,円,直線,短形,三角形があります。
円の描画
円の描画はCircleNode
で行う事が出来ます。
設定できる情報と対応するプロパティは以下の通りです。
設定できる情報 | 対応するプロパティ | 備考 |
---|---|---|
中心座標 | Position | |
半径 | Radius | |
頂点の数 | VertNum | 3以上にしなければならない。 |
VertNum
を調整する事で,三角形や五角形など正多角形を描画出来ます。
円にしたければ頂点の数を増やすと良いでしょう。
円弧の描画
円弧の描画はArcNode
で行う事が出来ます。
ArcNode
ではCircleNode
の内容に加えて,描画をする角度の範囲を設定できます。
設定できる情報と対応するプロパティは以下の通りです。
設定できる情報 | 対応するプロパティ | 備考 |
---|---|---|
中心座標 | Position | |
半径 | Radius | |
頂点の数 | VertNum | 3以上にしなければならない。 |
描画開始角度 | StartDegree | |
描画終了角度 | EndDegree |
Note
StartDegree
とEndDegree
の値はそれぞれ-360~360の間に自動的に修正されます,
その差も360までに自動的に修正されます。
StartDegree
とEndDegree
の大小に指定はありません。
直線の描画
直線の描画はLineNode
で行う事が出来ます。
設定できる情報と対応するプロパティは以下の通りです。
設定できる情報 | 対応するプロパティ |
---|---|
端点1 | Point1 |
端点2 | Point2 |
太さ | Thickness |
短形の描画
短形の描画はRectangleNode
で行う事が出来ます。
設定できる情報と対応するプロパティは以下の通りです。
設定できる情報 | 対応するプロパティ | 備考 |
---|---|---|
左上頂点の座標 | Position | |
サイズ | RectangleSize | Texture.Sizeに関係なくこのプロパティの値で決定。 |
三角形の描画
三角形の描画はTriangleNode
で行う事が出来ます。
設定できる情報と対応するプロパティは以下の通りです。
設定できる情報 | 対応するプロパティ |
---|---|
頂点1 | Point1 |
頂点2 | Point2 |
頂点3 | Point3 |
サンプルコード
サンプルコードは以下の通りです。
using Altseed2;
namespace Sample
{
class ShapeNode
{
static void Main(string[] args)
{
// Altseed2 を初期化します。
Engine.Initialize("ShapeNode", 640, 480);
// 円を描画するノード
var circle = new CircleNode()
{
Color = new Color(255, 100, 100),
Radius = 30f,
Position = new Vector2F(100f, 300f),
VertNum = 30
};
// 円弧を描画するノード
var arc = new ArcNode()
{
Color = new Color(100, 255, 100),
Radius = 25f,
Position = new Vector2F(300f, 100f),
StartDegree = 30f,
EndDegree = 150f,
VertNum = 30
};
// 直線を描画するノード
var line = new LineNode()
{
Color = new Color(100, 100, 255),
Point1 = new Vector2F(200f, 150f),
Point2 = new Vector2F(400f, 350f),
Thickness = 5f
};
// 短形を描画するノード
var rectangle = new RectangleNode()
{
Color = new Color(255, 255, 100),
Position = new Vector2F(300f, 400f),
RectangleSize = new Vector2F(50f, 50f)
};
// 三角形を描画するノード
var triangle = new TriangleNode()
{
Color = new Color(255, 100, 255),
Point1 = new Vector2F(50f, 50f),
Point2 = new Vector2F(100f, 50f),
Point3 = new Vector2F(50f, 100f),
};
// エンジンにノードを追加します。
Engine.AddNode(circle);
Engine.AddNode(arc);
Engine.AddNode(line);
Engine.AddNode(rectangle);
Engine.AddNode(triangle);
// メインループ。
// Altseed のウインドウが閉じられると終了します。
while (Engine.DoEvents())
{
// Altseed を更新します。
Engine.Update();
}
// Altseed の終了処理をします。
Engine.Terminate();
}
}
}
これを実行するとこのように図形が描画されます。