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

C# 開發 WPF/Silverlight 動畫與遊戲系列教程(十一)地圖遮罩層實現(四)—— 遮罩層代碼與畫家算法

     編輯:關於C語言

障礙物構建(三段式,熟悉邏輯)

// 三個循環構建三處障礙物,代碼略...

遮擋物:兩棵樹

用 Image 控件承載:

Image Mask1 = new Image(), Mask2 = new Image();

private void InitMask() {
    Mask1.Width = 238; Mask1.Height = 244;
    Mask1.Source = new BitmapImage(new Uri(@"Map\Mask1.png", UriKind.Relative));
    Mask1.Opacity = 0.7;
    Carrier.Children.Add(Mask1);
    Canvas.SetZIndex(Mask1, 10000);
    Canvas.SetLeft(Mask1, 185); Canvas.SetTop(Mask1, 220);

    Mask2.Width = 198; Mask2.Height = 221;
    Mask2.Source = new BitmapImage(new Uri(@"Map\Mask2.png", UriKind.Relative));
    Mask2.Opacity = 0.7;
    Carrier.Children.Add(Mask2);
    Canvas.SetZIndex(Mask2, 10000);
    Canvas.SetLeft(Mask2, 466); Canvas.SetTop(Mask2, 11);
}

Opacity=0.7:角色置身樹下若隱若現,模擬真實 MMORPG 效果。
ZIndex=10000:畫家算法(近物遮遠物),WPF 中動態更新 ZIndex = Y座標 即可實現。遮罩層 ZIndex 需足夠大,防止任意物體 Y 值超過導致顯示 Bug。

運行測試效果圖。

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