以凍結魔法為例,講解魔法特效裝飾。需增加東西優先想用戶控件,建立 QXDecoration。準備 3 張冰刺裝飾素材:

命名 4-0/4-1/4-2 對應魔法類型設定。隨機抽取增加畫面生動性,大量同時凍結產生氣勢感。若用 Blend 繪製矢量冰刺可任意拉伸變化更逼真。
<Decoration Code="4" Num="3" Duration="2" CenterX="40" CenterY="60" />
if (magic.DecorationCode != -1 && canvas.FindName(string.Format("Decoration{0}", enemy.Name)) == null)
{
LoadXElement(string.Format("Decoration{0}", magic.DecorationCode.ToString()), GetTreeNode(SystemConfig, "Decoration", "Code", magic.DecorationCode.ToString()));
XElement DecorationData = GetXElement(string.Format("Decoration{0}", magic.DecorationCode.ToString()));
Random rm = new Random();
QXDecoration decoration = new QXDecoration()
{
BodySource = getImage(string.Format("Decoration/{0}-{1}.png", magic.DecorationCode, rm.Next((int)DecorationData.Attribute("Num") - 1))),
CenterX = (double)DecorationData.Attribute("CenterX"),
CenterY = (double)DecorationData.Attribute("CenterY"),
X = enemy.X, Y = enemy.Y,
Duration = (double)DecorationData.Attribute("Duration"),
};
canvas.RegisterName(string.Format("Decoration{0}", enemy.Name), decoration);
canvas.Children.Add(decoration);
}
本節將冰凍改為類似麻痺的凍結效果。裝飾消失兩種:時間歸零移除、被凍結精靈死亡移除。效果圖:
