2014-02-12 77 views
1

我在較新的pixi.js版本中遇到了奇怪的效果。我創建了一個簡單的示例,用於旋轉示例中的PIXI.Graphics對象以重現問題。看起來,如果我在Graphics對象中使用除(0,0)以外的其他軸心點(我還沒有嘗試過其他任何東西),旋轉不能按預期工作。它適用於pixi.js 1.3.0,但不適用於1.4.3和1.5.0。它只應該旋轉,但它也會在場景中移動。難道我做錯了什麼?我知道我可以改變座標,所以中心將是0,0點,但我不想因爲某種原因這麼做(除非它不可能以其他方式)。pixi.js中關於帶有旋轉和旋轉的圖形對象的奇怪效果

的例子:

var stage = new PIXI.Stage(0x66FF99); 
var renderer = PIXI.autoDetectRenderer(400, 300, null, true); 

document.body.appendChild(renderer.view); 
renderer.view.style.position = "absolute"; 
renderer.view.style.top = "0px"; 
renderer.view.style.left = "0px"; 
requestAnimFrame(animate); 

var g = new PIXI.Graphics(); 
g.beginFill(0xddffdd); 
g.lineStyle(1, 0, 1); 
g.moveTo(0, 0); 
g.lineTo(60, 60); 
g.lineTo(0, 60); 
g.endFill(); 

g.position.x = 200; 
g.position.y = 150; 
g.pivot.x = 30; 
g.pivot.y = 30; 
stage.addChild(g); 

function animate() { 
    requestAnimFrame(animate); 
    g.rotation += 0.1; 
    renderer.render(stage); 
} 

兩個URL對測試頁:

該工程確定:http://dev.progit.info/static/test-1.3.0.html

這不:http://dev.progit.info/static/test-1.4.3.html

+0

我遇到了同樣的問題,如果弄明白的話讓我知道。我做了一個master的構建,它仍然有相同的問題,所以它沒有被修復。 – Tim

+0

我檢出了1.4.3標記並進行了構建,並且它正常工作,這很奇怪,因爲1.4.3分鐘的文件已損壞。我檢出了1.5.0標籤,並且已損壞。所以標籤1.4.3和1.5.0之間的東西發生了變化,破壞了支點。 – Tim

回答

0

通過比較標籤1.4發現的bug .3至1.5.0。看起來像矩陣變換操作被重寫了一個減號變成了一個偶然事件。

在線路409和DisplayObject.js 410改變他們:

a02 = this.position.x + a00 * px - py * a01, 
a12 = this.position.y + a11 * py - px * a10, 

到:

a02 = this.position.x - a00 * px - py * a01, 
a12 = this.position.y - a11 * py - px * a10, 

,並開始爲再次預期工作。

我將在Github中提出問題