2012年5月4日 星期五

TexturePacker 介紹

在2D 遊戲的製作中, 為了要表現出連續動作, 通常會在短時間內持續地更新畫面圖案, 使其產生動畫的效果. 在Starling 圖像引擎的MovieClip 類別, 支援以Sprite Sheets 格式播放連續動作. 現為大家介紹TexturePacker, 把SWF 自動切割與合成.

請按 [觀看] 範例

我們在Flash IDE 中製作動畫, 然後產生SWF 檔.
在Flash 製作動畫

把SWF 檔放入TexturePacker, 在Data Format 選擇Sparrow 格式, 最後按Publish 完成.
將SWF 檔轉為Sprite Sheets

Sparrow 格式是相容Starling 圖像引擎, 產生一個PNG 與XML 檔, 在Adobe AIR 中載入相關檔案.
[Embed(source="assets/penguin.xml", mimeType="application/octet-stream")]
var AtlasXML:Class;

[Embed(source="assets/penguin.png")]
var AtlasTexture:Class;

// <----- create texture
var texture:Texture = Texture.fromBitmap(new AtlasTexture());
var xml:XML = XML(new AtlasXML());
var atlas:TextureAtlas = new TextureAtlas(texture, xml);

// <----- create MovieClip
var mc:MovieClip = new MovieClip(atlas.getTextures("penguin"), 30);
addChild(mc);

// <----- activate MovieClip
Starling.juggler.add(mc);

對於製作遊戲的朋友, 這個TexturePacker 是一個十分實用的工具.
大家可以 [下載] 範例試試看.

參考資料: http://www.gotoandlearn.com/play.php?id=147

注意事項: 關於SWF 動畫製作, 必需在時間主軸上製作, TexturePacker 不能把主軸之內的動作一同產生.

沒有留言: