10
我希望此對象圍繞其中心而不是左上角旋轉。 的代碼看起來是這樣的:AS3圍繞其中心點旋轉對象
switch (event.keyCode)
{
case 37:
car.rotation = -90;
car.x -= 5;
break;
所以當我按下左鍵,汽車左轉,但因爲它是現在,因爲它圍繞右上角旋轉跳了一下。
感謝
我希望此對象圍繞其中心而不是左上角旋轉。 的代碼看起來是這樣的:AS3圍繞其中心點旋轉對象
switch (event.keyCode)
{
case 37:
car.rotation = -90;
car.x -= 5;
break;
所以當我按下左鍵,汽車左轉,但因爲它是現在,因爲它圍繞右上角旋轉跳了一下。
感謝
最簡單的方法來完成,這是你的車精靈/影片剪輯添加到另一個精靈,其中x和y座標是width和height屬性的一半。如果汽車使用Adobe Flash進行繪製,您還可以將其拖動到左上方,以使中心位於中間。
下面將圍繞中心旋轉:
public function rotateAroundCenter(object:DisplayObject, angleDegrees:Number):void {
if (object.rotation == angleDegrees) {
return;
}
var matrix:Matrix = object.transform.matrix;
var rect:Rectangle = object.getBounds(object.parent);
matrix.translate(-(rect.left + (rect.width/2)), -(rect.top + (rect.height/2)));
matrix.rotate((angleDegrees/180) * Math.PI);
matrix.translate(rect.left + (rect.width/2), rect.top + (rect.height/2));
object.transform.matrix = matrix;
object.rotation = Math.round(object.rotation);
}
它翻譯對象的中心爲0,0,然後旋轉,然後將其轉換回。
非常感謝!有用 !!! –
似乎有一個非常小的錯誤,積累與每一個旋轉,它讓我的旋轉輪一點一點地移動。我的形象完美中心。非常奇怪 –
@DeyanVitanov嘗試刪除最後一行'object.rotation = Math.round(object.rotation);'看看會發生什麼。 –