Sprite
Spriteは、テクスチャ(画像)を画面に表示するための基本的なノードです。2Dゲームにおける最も重要な描画要素の一つで、キャラクター、背景、UI要素など、さまざまな画像を表示するために使用されます。
作成
まずテクスチャを読み込み、それをSprite クラスのコンストラクタに渡します。
public class GameScene : Scene{ public override void OnStart() { // テクスチャを読み込み var texture = Window.TextureFactory.Load("assets/player.png");
// スプライトを作成 var sprite = new Sprite(texture);
// シーンに追加 Root.Add(sprite); }}スプライトのプロパティ
テクスチャ
スプライトに表示するテクスチャを設定・変更できます。
var sprite = new Sprite();
// 後からテクスチャを設定sprite.Texture = texture1;
// テクスチャを変更(アニメーションなどで使用)sprite.Texture = texture2;
// テクスチャをクリアsprite.Texture = null;色調(TintColor)
スプライトに色を重ねて表示できます。
// 白色(デフォルト、元の色をそのまま表示)sprite.TintColor = Color.White;
// 赤みがかった色合いsprite.TintColor = Color.Red;
// 半透明sprite.TintColor = Color.FromArgb(128, 255, 255, 255);
// カスタムカラーsprite.TintColor = Color.FromArgb(255, 200, 100, 50);サイズ
デフォルト値としてテクスチャのサイズが設定されていますが、任意のサイズを指定して伸縮できます。
// デフォルト: テクスチャのサイズを使用var sprite = new Sprite(texture);
// カスタムサイズを設定sprite.Size = (64, 64);
// 幅と高さを個別に設定sprite.Width = 128;sprite.Height = 96;
// テクスチャのサイズに戻すsprite.ResetSize();Z順序と描画順序
スプライトの描画順序はZIndexプロパティで制御できます。
// 背景スプライト(奥)var background = new Sprite(bgTexture) .ZIndex(0);
// キャラクタースプライト(中間)var character = new Sprite(playerTexture) .ZIndex(10);
// UIスプライト(手前)var ui = new Sprite(uiTexture) .ZIndex(100);
Root.AddRange(background, character, ui);