質問
複数の画面解像度をサポートするためのlibgdxのための(アルゴリズムを作る)をどのようにサポートするか?パラメータを使用した場合の声明を使用して、アプリをHTCタトゥーに私のアプリを機能させました:
if (Gdx.input.getX()==40) {
.
より大きな画面でこの作業をするための良いアルゴリズムは何ですか? 私はこれを試してみましたが、結果がない:
publis static int translatex() {
float p = (float)Gdx.graphics.getHeight()*340;
return (int) p*Gdx.input.getX();
}
.
340は、HTCの入れ墨に私が使用する基本X(私の電話のX解像度)です。 そのため、.....絶対値で大きな画面をサポートする機能を作ることができますか。IF文を変更したいのですが。
解決
それはかなり簡単です。あなたは基本的にあなたのネイティブの決議のためにあなたの全プログラムを構築します、しかし、位置決めやテクスチャのサイジングに対処するすべてのものには次のようなものがあります:
private void resize()
{
float x = Gdx.graphics.getWidth();
float y = Gdx.graphics.getHeight();
float changeX = x / assumeX; //being your screen size that you're developing with
float changeY = y / assumeY;
position = new Vector2(position.x * changeX, position.y * changeY);
width = startWidth * changeX;
height = startHeight * changeY;
bounds = new Vector2 (position.x, (Gdx.graphics.getHeight() - position.y) - height);
}
.
基本的に、あなたがしていることは、あなたの解決策のx / y値の変化に応じて生成され、それを実行して実行して実行しています。さらにそれはネイティブからのものです、それは大きくなります。何かをチェックするとき、どこかに何かをどこかに置くときは、常にあなたの希望の解像度としてそれをコード化しますが、それを表示する前やプログラムの残りの部分と相互作用させる前にサイズ変更機能を通して実行してください。
他のヒント
よりエレガントな解決策を見てください。org / index.php?topic= 25685.0 (そのソリューションへのNateのコメントを参照)。
また、scene2d
を使用している場合は、現在(libgdx 0.9.6)stage.setViewport
メソッドを使用する必要があるが、それは実際には予想されるように振る舞わない。
アップデート: setViewportが修正されましたので、これは期待どおりに機能します。