2013-07-03 59 views
0

你好,我目前正在研究完全用java編寫的2D遊戲引擎。有沒有一種方法來居中圖形對象(g.drawString(X,Y,Z)。在java中居中一個圖形對象

這將是最好,如果這可以通過圖形和DefaultToolkit完成。

三江源非常:)

+1

先看看[this](http://stackoverflow.com/questions/14284754/java-center-text-in-rectangle/14287270#14287270) – MadProgrammer

+0

字符串是用點來衡量的,而你用像素,並且沒有辦法以像素爲單位繪製字符串,但是您將獲得繪製的像素字符串並將其繪製在中心 – 2013-07-03 06:28:47

+0

是的,您可以居中放置圖形對象。你想在這裏實現什麼。 'g.drawString(x,y,z)'爲你做。你需要如果其他物體可以居中嗎? – blganesh101

回答

1

簡單的數學。我們的目標是以中心爲中心,應該以中心爲中心。

對象寬度 - 含

對象高度 -^h

區寬度 - AW

區高度 - 啊

//按照中心座標在哪裏左上角應放在座標以使物體位於中心

centerWidth =(aW-W)/ 2

centerHeight =(aH - H)/ 2

正如您所看到的,您必須知道您放置對象的區域的指標! 如果該區域只是屏幕,則屏幕尺寸可以像這樣使用。

//Some dummy object metrics 
    int w = 30; 
    int h = 60; 

    //Now we find out the area metrics 
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    int aW = screenSize.width; 
    int aH = screenSize.height; 

    //Apply our common formula 
    int centerWidth = (aW - w)/2; 
    int centerHeight = (aH - h) /2; 

這適用於你認識的物體(它們的寬度和高度)。

文字居中

如果要居中文本,您可以使用FontMetrics類,它可以讓你衡量文字的大小。