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

WPF/Silverlight 遊戲開發教程(三十二之二):雷屬性麻痺效果與變色蒙版技術

     編輯:關於C語言

步驟二:具體實現

WPF/Silverlight 無直接改變圖片色相方法,改用控件蒙版間接實現。在 QXSpirit XAML 添加矩形蒙版:

<Rectangle Name="BodyMask" Opacity="0.3" Visibility="Collapsed" Panel.ZIndex="1">
    <Rectangle.OpacityMask>
        <ImageBrush x:Name="BodyMaskSource" />
    </Rectangle.OpacityMask>
</Rectangle>

蒙版寬高與精靈圖片聯動,需時設定 BodyMaskSource.ImageSource = Body.Source、賦予 Fill 顏色並顯示,即可模擬色相改變。恢復時隱藏 Collapsed 不佔資源。

邏輯實現:ExtraTime 記錄持續時間

double[] _ExtraTime = new double[6];
public double[] ExtraTime { get { return _ExtraTime; } set { _ExtraTime = value; } }

與 ExtraAttributes 枚舉一一對應,輔助執行緒每秒 -1 同步更新,支援中毒每秒傷血等邏輯。

1) 雷屬性 — 麻痺

無法動彈:動作鎖定、無法移動。

if (enemy.VLife > injure)
{
    enemy.BodyMaskColor = new SolidColorBrush(Colors.Snow);
    enemy.BodyMaskSource.ImageSource = enemy.Body.Source;
    enemy.TimerState = TimerStates.Stop;
    Super.PauseSpiritStoryboard(enemy);
}
else { enemy.TimerState = TimerStates.Start; }

移動方法開頭加判斷:if (spirit.ExtraTime[0] > 0) return;

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