上節實現地圖牽引移動,遺留主角/障礙物跟隨移動問題。最簡單法:座標存 Tag 屬性(如 rect.Tag = x + "," + y),取用時 Split 解析。但效率極低、零擴展性。主角屬性極多(座標、名稱、門派、血條、藍條、屬性、裝備、線程參數、方向……),全塞 Tag 不現實。
遊戲核心對象:主角、其他玩家、NPC、怪物、BOSS、坐騎、障礙物……初學者難駕馭外國通用精靈(術語多、屬性龐大)。WPF/Silverlight 提供強大支援:自訂精靈控件。
Controls 資料夾歸類QXSpirit.xaml
添加用戶控件對話框截圖。
傳統屬性(double _X; public double X {get;set;})僅適合描述性屬性(如圖片路徑)。WPF 中只有依賴屬性才能被綁定、Storyboard 目標屬性識別。標準模板:
public double X {
get { return (double)GetValue(XProperty); }
set { SetValue(XProperty, value); }
}
public static readonly DependencyProperty XProperty =
DependencyProperty.Register("X", typeof(double), typeof(QXSpirit), new PropertyMetadata(0.0));
Y 同理。依賴屬性支援動畫、綁定、樣式等核心機制,是精靈控件靈魂所在。