2015-06-14 50 views
3

我面臨的Android工作室和libgdx這個錯誤,試圖建立時/運行:libgdx Android的工作室 - 不能解析方法drawMultiLine和符號HAlignment

Error:(118, 79) Gradle: error: cannot find symbol variable HAlignment

和Android工作室也標誌着「drawMultiLine」和「 HAlignment」紅色說法在源代碼的Java類:

"Cannot resolve method 'drawMultiLine(com.badlogic.gdx.graphics.g2d.SpriteBatch, java.lang.String, float, float, int, ?)'" "Cannot resolve symbol HAlignment"

代碼塊:

private void renderGuiGameOverMessage (SpriteBatch batch) 
{ 
    float x = cameraGUI.viewportWidth/2; 
    float y = cameraGUI.viewportHeight/2; 
    if (worldController.isGameOver()) 
    { 
     BitmapFont fontGameOver = Assets.instance.fonts.defaultBig; 
     fontGameOver.setColor(1, 0.75f, 0.25f, 1); 
     fontGameOver.drawMultiLine(batch, "GAME OVER", x, y, 0, BitmapFont.HAlignment.CENTER); 
     fontGameOver.setColor(1, 1, 1, 1); 
    } 
} 

爲什麼找不到該方法? 我該如何解決這個問題?

非常感謝!

+0

你使用哪個libgdx版本? – donfuxx

+0

我擔心你正在使用已棄用的api。 (你是在舊項目中更新libgdx版本還是從舊的libgdx項目中複製代碼?)自從libgdx版本1.5.6以來,BitmapFont已經發生了很多變化,請參閱http://www.badlogicgames.com/wordpress/?p=3658 'BitmapFont.HAlignment'不存在於最新的libgdx中 – donfuxx

+0

libgdx版本是1.6.0,本指南說本書中使用的libgdx版本是0.1.2(學習LibGDX遊戲 開發 第二版)。 Align.CENTER也顯示錯誤「無法解析符號'CENTER'」(導入導入com.badlogic.gdx.utils.Align;) – user2342558

回答

2

試試這個:而不是

fontGameOver.drawMultiLine(batch, "GAME OVER", x, y, 0, Align.center); 

fontGameOver.drawMultiLine(batch, "GAME OVER", x, y, 0, BitmapFont.HAlignment.CENTER); 

請注意,您需要導入com.badlogic.gdx.utils.Align現在。

bitmapfont refactoring post from the badlogicgames blog來判斷這應該適合你。特別看到這一點:

BitmapFont.HAlignment is gone. Align is used instead. Align has been moved to the utils package.

+1

非常感謝! 您提供給我的鏈接有答案! 只需將其替換爲:fontGameOver.drawMultiLine(batch,「GAME OVER」,x,y,0,BitmapFont.HAlignment.CENTER);這個:fontGameOver.draw(批次,「GAME OVER」,x,y); – user2342558