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

C# 開發 WPF/Silverlight 動畫與遊戲教學 (44-3):屬性加點器與 RepeatButton 實現

     編輯:關於C語言

屬性加點器核心邏輯:基於 QXIcon 實現 RepeatButton 模式

角色屬性面板包含裝備管理與屬性加點器。本文專注加點器實現,將 QXIcon 擴充為 IconTypes.RepeatButton 模式,模擬 NumericUpDown 連點行為。

一、RepeatButton 原理與 DispatcherTimer 實現

case IconTypes.RepeatButton:
    DispatcherTimer timer = new DispatcherTimer();
    timer.Tick += (s, e) => { timer.Interval = TimeSpan.FromMilliseconds(Interval); RepeatClick(this, e); };
    this.MouseEnter += (s, e) => { Container.Background = NewSource; };
    this.MouseLeave += (s, e) => { Container.Background = _BodySource; timer.Stop(); };
    this.MouseLeftButtonDown += (s, e) => { timer.Interval = TimeSpan.FromMilliseconds(Delay); timer.Start(); };
    this.MouseLeftButtonUp += (s, e) => { timer.Stop(); e.Handled = true; };
    break;

核心參數:

  • Delay:首次觸發延遲 (毫秒)
  • Interval:連續觸發間隔 (毫秒)
  • RepeatClick 事件:外部訂閱處理加點邏輯

二、屬性加點邏輯與即時預覽

配合臨時屬性變數實現「加點即時預覽,確認後提交」模式:

  1. 點擊 +/− 按鈕修改臨時屬性值
  2. 介面即時更新顯示計算後屬性 (攻擊力、血量上限等)
  3. 確認按鈕提交至伺服器,取消按鈕還原臨時值

三、實測效果展示

初始狀態:智慧 30,魔法攻擊 460-615,雷射魔法傷害 ~600

加點前屬性面板
圖 1:加點前基礎屬性與傷害

加點後:智慧 200,魔法攻擊 3010-4015,雷射魔法傷害 ~3500

加點後屬性面板
圖 2:智慧加至 200 後的屬性質變

四、模式選擇說明

採用折中方案:介面即時反饋但需確認提交。其他常見模式:

  • 純加點無減點,點擊即提交 (最簡單)
  • 全程即時同步伺服器,取消需回滾 (較複雜,需臨時存儲)

面板類開發階段告一段落,後續將聚焦裝備、物品、技能的拖放系統實現。

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