首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

WPF/Silverlight 遊戲開發教程(三十三之一):魔法特效裝飾系統與凍結效果展示

     編輯:關於C語言

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

命名 4-0/4-1/4-2 對應魔法類型設定。隨機抽取增加畫面生動性,大量同時凍結產生氣勢感。若用 Blend 繪製矢量冰刺可任意拉伸變化更逼真。

Config.XML 配置

<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);
}

本節將冰凍改為類似麻痺的凍結效果。裝飾消失兩種:時間歸零移除、被凍結精靈死亡移除。效果圖:

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved