2017-04-22 56 views
0

画像の中央に画像(playBtn)を配置しようとしています。下のコードは、右上に表示されます。上記画像を画面の中央に配置するにはどうすればいいですか?

public class FlappyBird extends ApplicationAdapter { 

     Texture img; 
     public static final int WIDTH = 1440; 
     public static final int HEIGHT = 2560; 



    } 

以下の私のコードを参照してください、私は私のWIDTH & HEIGHT私はそうする正しい方法ではないと信じてセットアップを持っています。それでも、これは私に必要な値を与えますが、私はplaybthと協力し、事実上すべてのオブジェクトは、左のコーナーの一つから配置されている中央

public class MenuState extends State { 
     private Texture background; 
     private Texture playBtn; 


     public MenuState(GameStateManager gsm) { 
      super(gsm); 
      background = new Texture("bg.png"); 
      playBtn = new Texture("playbtn.png"); 
     } 



     @Override 
     public void render(SpriteBatch sb) { 

      sb.begin(); 
      sb.draw(background, 0, 0, FlappyBird.WIDTH, FlappyBird.HEIGHT); 
      //sb.draw(playBtn, (FlappyBird.WIDTH/2) - (playBtn.getWidth()/2), FlappyBird.HEIGHT/2); 
      sb.draw(playBtn,(FlappyBird.WIDTH/2)-(playBtn.getWidth()),FlappyBird.HEIGHT/2); 
      sb.end(); 


     } 
    } 
+0

「機能しません」とはどういう意味ですか?それは何をするためのものか?代わりに何をすべきか? – alzee

+0

画像が中央に配置されていません。右上に向かって – choman

答えて

0

に置くように見えることはできません。したがって、イメージ自体はアライメントされていないように見えますが、プログラミング言語がY軸とどのように作用するかによって、イメージの左上または左下が中心になります。

私は、より良い視覚的表現を得るためにいくつかの簡単な図を一緒に投げました。 この例では、Y軸が下方向に増加するため、点(0,0)は左下ではなくウィンドウの左上になります。

200pxの幅と100pxの高さのウィンドウがあり、ウィンドウの中央に配置する20px×20pxのオブジェクトがあるとします。一般的な仮定は、ウィンドウの半分の幅と高さでオブジェクトを配置することであるが、これはあなたにこのような結果が得られます:

これは、しかし、修正するために非常に単純な問題です。ウィンドウの幅の半分から、X軸のオブジェクトの幅の半分から、ウィンドウの高さの半分からY軸のオブジェクトの半分の高さを引いた位置にオブジェクトを配置するだけです。

いくつかのプログラミング言語は、Y軸が上向きに増加し、下向きに減少するところで異なる。これが当てはまる場合は、左上隅の代わりにオブジェクトの左下隅を考慮する必要がありますが、方程式は同じである必要があります。

関連する問題