Silverlight遊戲開發學習筆記(一)

來源:互聯網
上載者:User

一、Silverlight中的三種動畫:
       Storyboard動畫的建立必須依賴關聯屬性(相依性屬性),為建立一系列高度連續變化的動畫提供解決方案,甚至實現更為複雜的KeyFrame主要畫面格動畫。

       CompositionTarget動畫適合基於全域畫面重新整理時的時時屬性更改,比如遊戲迴圈等等。

       DispatcherTimer動畫則非常適合運用於對象的自有動作動畫中,例如精靈的移動,戰鬥,施法動作;魔法播放動畫等等。

二、“八朝向”演算法
/// <summary>
        /// 計算當前座標與目標點之間的正切值擷取朝向
        /// </summary>
        /// <param name="current">當前座標</param>
        /// <param name="target">目標座標</param>
        /// <returns>朝向代號0、1、2、3、4、5、6、7</returns>
        public int GetDirection(Point current, Point target) {
            double tan = (target.Y - current.Y) / (target.X - current.X);
            if (Math.Abs(tan) >= Math.Tan(Math.PI * 3 / 8) && target.Y <= current.Y) {
                return 0;
            } else if (Math.Abs(tan) > Math.Tan(Math.PI / 8) && Math.Abs(tan) < Math.Tan(Math.PI * 3 / 8) && target.X > current.X && target.Y < current.Y) {
                return 1;
            } else if (Math.Abs(tan) <= Math.Tan(Math.PI / 8) && target.X >= current.X) {
                return 2;
            } else if (Math.Abs(tan) > Math.Tan(Math.PI / 8) && Math.Abs(tan) < Math.Tan(Math.PI * 3 / 8) && target.X > current.X && target.Y > current.Y) {
                return 3;
            } else if (Math.Abs(tan) >= Math.Tan(Math.PI * 3 / 8) && target.Y >= current.Y) {
                return 4;
            } else if (Math.Abs(tan) > Math.Tan(Math.PI / 8) && Math.Abs(tan) < Math.Tan(Math.PI * 3 / 8) && target.X < current.X && target.Y > current.Y) {
                return 5;
            } else if (Math.Abs(tan) <= Math.Tan(Math.PI / 8) && target.X <= current.X) {
                return 6;
            } else if (Math.Abs(tan) > Math.Tan(Math.PI / 8) && Math.Abs(tan) < Math.Tan(Math.PI * 3 / 8) && target.X < current.X && target.Y < current.Y) {
                return 7;
            } else {
                return 0;
            }
        }

三、速度係數的理解
        關於速度係數的理解。
        數學公式:s=v*t
        而這裡(k為速度係數):s*k=t。這樣,s/t=1/k。也就是v=1/k。距離乘以係數得到時間。
        這樣,速度係數越大,單位時間內移動的距離就小(速度),物體運動的就越慢。
        再來看這個公式:s*k=t。是不是係數“k”越大,所用時間“t”就越大。“s”距離一定,時間長了,速度自然慢。

 

朋友,如果您有什麼真知灼見,可以加“新浪微博”/MSN哦,starrycheng@live.com,我們大家一起討論,一起研究。

最後,幫忙加一分吧,想整個空間系統。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.