2016-10-27 12 views
-1

こんにちは、私はLibGDXの初心者です。 私は動きのあるカメラを持っており、カメラが動いている間にスコアを表示したい。 私はまだこれを行っていますが、カメラが動くとテキスト(スコア)が揺れます。 これを修正する方法はわかりません。 ここに私のコードです。カメラでビットマップフォントを移動するLibGDX

public void render(SpriteBatch sb) { 
    sb.setProjectionMatrix(cam.combined); 
    sb.begin(); 
    String s = Integer.toString(SCORE); 
    String h = Integer.toString(highscore); 

    sb.draw(bg,cam.position.x - (cam.viewportWidth /2),0); 


    sb.draw(groud,groundpos1.x,groundpos1.y); 
    sb.draw(groud,groundpos2.x,groundpos2.y); 


    font.draw(sb,s,cam.position.x-font.getSpaceWidth(),cam.position.y+(cam.viewportHeight /2)-39); 
    high.draw(sb,h,cam.position.x- (cam.viewportWidth /2),cam.position.y+(cam.viewportHeight /2)-39); 
    sb.end(); 
} 

答えて

0

これは、デフォルトで文字位置が整数位置に丸められているためです。これを避けるには、各テキストオブジェクトにfont.setUseIntegerPositions(false)を設定します。

しかし、あなたのゲーム世界のカメラであなたのGUIを動かそうとするのは現実的ではありません。 GUI用に別のカメラを作成します。

public void render(SpriteBatch sb) { 
    sb.setProjectionMatrix(gameCam.combined); 
    sb.begin(); 

    sb.draw(bg,gameCam.position.x - (gameCam.viewportWidth /2),0); 

    sb.draw(groud,groundpos1.x,groundpos1.y); 
    sb.draw(groud,groundpos2.x,groundpos2.y); 


    sb.setProjectionMatrix(guiCam.combined); 
    String s = Integer.toString(SCORE); 
    String h = Integer.toString(highscore); 
    font.draw(sb, s, font.getSpaceWidth(), guiCam.viewportHeight/2 - 39); 
    high.draw(sb, h, guiCam.viewportWidth /2, guiCam.viewportHeight/2 - 39); 
    sb.end(); 
} 
関連する問題