承接上節,新增兩個關鍵屬性 HoldWidth、HoldHeight 將在遊戲中對精靈起關鍵調控作用。完成屬性定義後,需將角色身體(Body0/1.gif)與武器(Weapon1/2.gif)大圖加載專案:

QXSpirit Spirit = new QXSpirit();
private void InitSpirit()
{
Spirit.X = 300;
Spirit.Y = 400;
Spirit.Timer.Interval = TimeSpan.FromMilliseconds(150);
Spirit.Equipment[0] = 0;
Spirit.Equipment[1] = 1;
Spirit.EachActionFrameRange = new int[] { 5, 8, 7, 6, 8 };
Spirit.DirectionFrameNum = 34;
Spirit.TotalWidth = 5100;
Spirit.TotalHeight = 1200;
Spirit.Source = Super.EquipPart(Spirit.Equipment,
Spirit.DirectionNum, Spirit.DirectionFrameNum,
Spirit.TotalWidth, Spirit.TotalHeight,
Spirit.SingleWidth, Spirit.SingleHeight);
CarrIEr.Children.Add(Spirit);
}
int _FrameCounter = 1;
public int FrameCounter { get { return _FrameCounter; } set { _FrameCounter = value; } }
private void Timer_Tick(object sender, EventArgs e)
{
if (OldAction != Action) { ChangeAction(); }
Body.Source = Source[(int)Direction, FrameCounter];
FrameCounter = FrameCounter == CurrentEndFrame ? CurrentStartFrame : FrameCounter + 1;
}
若動作改變則呼叫 ChangeAction(),接著依朝向與幀推進器動態更新 Body.Source,幀推進器在起始與結束幀之間循環,形成連續動畫。