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

C# 開發 WPF/Silverlight 動畫與遊戲系列教程(二)讓物體動起來 ②(二)—— CompositionTarget 動畫測試與改進

     編輯:關於C語言

邏輯判斷與測試

取得方塊 X、Y 位置,與目標 moveTo 比較判斷 +speed 或 -speed。Ctrl+F5 測試,方塊確實動了。

問題與解決

移動抖動、不平滑。因 CompositionTarget 需分別設定 X、Y 速度,範例為簡化將兩者同設為 5,實際不合理。需計算切線值 Tan,依直線速度算出 speed_X、speed_Y:

Canvas.SetLeft(rect, rect_X + (rect_X < moveTo.X ? speed_X : -speed_X));
Canvas.SetTop(rect, rect_Y + (rect_Y < moveTo.Y ? speed_Y : -speed_Y));

如此才能真實模擬移動(具體算法不再贅述)。

小結

CompositionTarget 基於 UI 重繪回調實現幀動畫,下節將介紹第三種動態動畫方法並三者比較。

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