[ Feathers ] オブジェクト – TiledImage –

前回は、Feathersのsliderクラスについてご紹介いたしました。
今回は、FeathersのTiledImageクラスをご紹介したいと思います。

ゲームなどを作るときに大きい背景ではなく、同じ画像を繰り返し表示するような
ケースがあると思います。

そんな場合にこちらの、TiledImageクラスを使用すると簡単に画像の繰り返し表示が行えます。
こちらの使用方法について説明していきます。

まず、インスタンスを定義し、生成します。
この際、コンストラクタの引数には、Textureクラスのインスタンスを指定します。

	var tileImage:TiledImage;                          //タイルの表示サンプル
	tileTexture = Texture.fromBitmap( new tileData()); //Textureデータの生成
	tileImage = new TiledImage(tileTexture);           //TiledImageの生成

次に表示サイズを指定します。

    tileImage.setSize(900,700);                         //表示サイズの指定

次に平滑化の設定を行います。
この平滑化とは、画像を拡大、縮小した際に画像の見た目が荒くなる場合に、
見た目を滑らかにしてくれる機能となります。
今回は画像の拡大、縮小は行いませんので、なしを指定します。

設定値については、以下になり、バイリニアフィルタリング、トライリニアフィルタリングは、
画像を平滑化する手法です。

TextureSmoothing.NONE :なし
TextureSmoothing.BILINEAR :バイリニアフィルタリング
TextureSmoothing.TRILINEAR :トライリニア・フィルタリング(バイリニアフィルタリングより高性能な手法)

<バイリニアフィルタリングとトライリニア・フィルタリングについて>
どちらも3Dに使用されるものとなりますが、
バイリニアフィルタリングはピクセルに最も近い4つのテクセル(3次元コンピュータグラフィックスに貼り付ける画像の画素のこと)
を使用し、4つのテクセルの色の距離、拡大率を考慮した計算を行い、最終的なテクセルを導きだす手法です。
トライリニアフィルタリングについては、バイリニアフィルタリング手法に対して更に奥行きを考慮した
テクセルを導き出す手法となりますので、バイリニアフィルタリングより高性能な手法となります。
詳しくは下記のサイトを参照願います。

<参考サイト>
http://www.4gamer.net/specials/3de/nv_at/nv_at01.html

平滑化の設定の記述は、以下になります。

	tileImage.smoothing = TextureSmoothing.NONE;        //平滑化の設定

このTextureSmoothingを使用する場合は、以下をインポートしてください。

	import starling.textures.TextureSmoothing;

最後に、貼り付け終わりとなります。

	addChild(tileImage);

簡単なご紹介となりましたが、以上で本記事は終了となります。

最後まで御覧いただきありがとうございました。

TiledImageのサンプルコード
(下記の画像をTiledImageでリピートさせて、Tweenでスクロールさせています。)
使用画像

import starling.core.Starling;
import starling.display.Image;
import starling.display.Sprite;
import starling.events.Touch;
import starling.events.TouchPhase;
import starling.events.TouchEvent;
import starling.textures.Texture;
import starling.events.Event;

//feathersのタイルイメージ
import feathers.display.TiledImage;
import starling.textures.TextureSmoothing;
import starling.animation.Tween;
import starling.core.Starling;	

internal class StarlinTestMain extends Sprite
{
	//各種ファイルの埋め込み
    [Embed(source = "tiledata.png")]
    private static const tileData:Class;     
	
	
	private var tileTexture:Texture;		//TiledImageクラスに貼り付けるTexture定義
	private var tileImage:TiledImage;		//TiledImageクラスの定義
	private var tileImageTween:Tween;

	public function StarlinTestMain()
    {
        addEventListener(starling.events.Event.ADDED_TO_STAGE, addStage);
    }
 
    private function addStage(e:starling.events.Event):void
    {
        removeEventListener(starling.events.Event.ADDED_TO_STAGE, addStage);
         
		tileTexture = Texture.fromBitmap( new tileData());	//Textureデータの生成
		
		tileImage = new TiledImage(tileTexture);			//TiledImageの生成
		tileImage.setSize(900,700);							//表示サイズの指定
		tileImage.smoothing = TextureSmoothing.NONE;		//平滑化
		backgroundRepeat();
		addChild(tileImage);

	}
	/**
	*  背景のスクロール関数.
	*/
	private function backgroundRepeat(){
		tileImage.x = 0;
		tileImage.y = 0;
		if(tileImageTween != null){
			Starling.juggler.remove(tileImageTween);
		}
		var tileWidth:int = 1000;
		var tileHeight:int = 800 ;
		tileImageTween = new Tween( tileImage , 2 )
		tileImageTween.moveTo( -100, -100  );
		tileImageTween.onComplete = backgroundRepeat;
		Starling.juggler.add(tileImageTween);
	}
	
}

feathers wiki
TiledImage

<次回の更新について>
次回は、FeathersのScrollTextクラスについてご紹介します。


弊社では全国各地の請負い(ご自宅)で作業協力頂ける、フリーランスエンジニアの方を常時探しております。
ご興味ある方は、お気軽にお問い合わせ下さい。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*