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

WPF/Silverlight 遊戲開發教程 (二十五-5):HitTest 精靈精準點選與半透明高亮特效

     編輯:關於C語言

兩種選中特效方案對比

方案一:OuterGlowBitmapEffect 描邊 (僅 WPF、效能差)


<Image x:Name="Body" Stretch="Fill">
  <Image.BitmapEffect>
    <OuterGlowBitmapEffect GlowColor="Blue" GlowSize="5" Noise="0" Opacity="1" />
  </Image.BitmapEffect>
</Image>

原理:即時動態查找圖片不透明區域邊緣發光濾鏡。缺點:僅限 WPF、佔用大量 UI 線程資源、不友好。

OuterGlow 效果圖

方案二:半透明化 (跨平台、高效、採用)

滑鼠移動事件中增改 6 行:


private void Window_MouseMove(object sender, MouseEventArgs e)
{
    if (SpiritList.Count > 0)
    {
        bool targetFound = false;
        for (int i = 0; i < SpiritList.Count; i++)
        {
            if (!targetFound && IsEfficaciousSection(SpiritList[i].EfficaciousSection, e.GetPosition(SpiritList[i])))
            {
                this.Cursor = Super.GetCursor(1);
                SpiritList[i].Opacity = 0.6; // 半透明高亮
                targetFound = true;
                label3.Content = SpiritList[i].Name;
            }
            else
            {
                if (!targetFound) this.Cursor = Super.GetCursor(0);
                SpiritList[i].Opacity = 1; // 恢復不透明
            }
        }
    }
}
半透明高亮效果圖

性能提示與小結

  • 單核 CPU / Win2003 前系統下怪物密集處可能卡頓,因採多線程結構,非引擎極限
  • 教程由淺入深,優化技術在後續章節
  • HitTest 是打怪、施法的前提條件,功能強大近乎無所不能

下節:精靈面板界面與三大屬性 (生命/魔力/經驗) 表現形式實現。

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