簡體   English   中英

圍繞其中心旋轉精靈會導致大小更改

[英]Rotating a sprite around its center causes size changing

我創建了一個繼承自Sprite的類,並添加了以下函數以從中心旋轉:

private function rotate(angle:Number):void
        {
            trace(width);

            var tmpWidth:Number = width;
            var rect:Rectangle = getBounds(parent); 
            var matrix:Matrix = transform.matrix;
            matrix.translate(-(rect.left + rect.width/2), -(rect.top + rect.height/2) );
            matrix.rotate((angle/180)*Math.PI); 
            matrix.translate((rect.left + rect.width/2), (rect.top + rect.height/2) );
            transform.matrix = matrix;

            trace(width);
        }

我的問題是旋轉后對象的大小正在改變。 例如,轉換前的寬度值小於轉換后的寬度。 我究竟做錯了什么?

我沒有看到任何意外的行為。

由於您要應用旋轉,因此旋轉后的寬度和高度可能會有所不同。

例如,如果將90度旋轉應用於50x100的精靈,則現在將是100x50的精靈。

但是,如果要對完全方形的對象執行旋轉,並應用90度旋轉,則前后的寬度應相同。

請記住,寬度和高度是根據對象的邊界計算的。 通過旋轉對象,您可能會更改對象的邊界,從而更改寬度和高度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM