2016-09-27 100 views
1

對於2D遊戲的目的cordinate起源我必須在拉斐爾的js文件的原點(0,0)設置爲另一個角落。默認情況下,原稿正在紙張的左上角設置。我怎樣才能改變拉斐爾JS原點位置,使元素可以相對被吸引到新的原點?如何改變拉斐爾JS文件

回答

0

我覺得沒有官方的方法。 您可以將各種形狀(width_of_canvas - shape_of_width)/ 2和(height_of_canvas - shape_of_height)/ 2創建後。所以你可以將它們的起源克里特並用這樣的函數來轉換它們。

var paper = Raphael("canvas", 400, 400); 
var offsetWidth = paper.width/2, 
offsetHeight = paper.height/2; 
var paperBorder = paper.rect(0,0,paper.width, paper.height).attr({ stroke:"black"}) 
var rectangle = paper.rect(0, 0, 50, 50).attr({ 
    stroke:"black", 
    fill:"aqua" 
}) 

function transformToCenter(shape) { 
    var shapeProps = shape.getBBox(); 
    var itemOffsetWidth = offsetWidth - shapeProps.width/2, 
    itemOffsetHeight = offsetHeight - shapeProps.height/2; 
    shape.transform("t" + itemOffsetWidth + " " + itemOffsetHeight); 
} 
transformToCenter(rectangle); 

JSFiddle Example

+0

非常感謝。我會試試這個。 –

+0

讓我知道它的工作與否。 –

+0

我的目的是設置紙張本身的起源,這樣,如果我增加新車型將定位涉及到這一點。但似乎除了像你所說的那樣畫出一切並變換之外別無他法。這很好,謝謝。 –