1

AndEngineの基本的なサイズ変更についてはすべて知っていますが、テキストのサイズを変更するための良い方法に出くわしていません。基本的に、誰もがしていることは、すべてのフォントが18ptのビットマップとして宣言され、最高のものを期待しているということです。開発デバイスでは、すべてがシャープに見えますが、より大きなデバイスに切り替えると、かなり見苦しく見えます。すべてのフォントをより大きなアトラスにロードしてからサイズを小さくする必要がありますか?それはオプションではありません。助けてください。

4

1 に答える 1

2

あなたの質問はGLES2固有ですか?私はそうは思わない。

フォントサイズは、画面サイズではなく、密度に合わせて拡大縮小する必要があります。多分両方。ともかく。FluxCardsではこれを行います:

// determine the density
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
DisplayMetrics displayMetrics = new DisplayMetrics();
display.getMetrics(displayMetrics);
density = displayMetrics.density;

// scale desired size 25 by density
int fontSize = (int) (25 * density);

Texture fontTexture = new BitmapTextureAtlas(1024, 1024, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
font = new Font(fontTexture, Typeface.create(Typeface.DEFAULT, Typeface.NORMAL), fontSize, true, Color.WHITE);
mEngine.getTextureManager().loadTexture(fontTexture);
mEngine.getFontManager().loadFont(font);

(私のコードはもっと複雑ですが、1024x1024がfontTextureに使用できる最大値であり、大きなフォントやアジアのテキストでは文字が書かれないことがあるため、まだ苦労しています。GLES2でTextを使用する方法を探していました。私があなたの質問に出くわす前の私の2分間の読書は、これはもう問題ではないことを示唆しました。)

于 2012-08-12T23:45:21.440 に答える