0

作業中のlibgdxゲームがあります。このゲームでは、「ヘルプ」画面を押すと、Help_Managerクラスが「Room」ステージオブジェクトを使用してラベルを描画します。部屋のカメラの幅は27、高さは18です。ステージは同じカメラを使用し、ビューポートを同じ幅と高さに設定します。 ここに画像の説明を入力してください

バウンド(4,4,1,1)のステージにテキストボタンを追加すると、ボタンは正しく描画されますが、バウンド(0,0,16,4)のラベルを追加すると、ラベル「S」が表示されます。単独で画面の半分を占めます(上に表示)(「船から「フリング」船に指をスワイプする」と表示されます)。境界の幅と高さを何に設定しても、ラベルは同じサイズのままです。スケールを変更しても効果はありません。フォントスケール(フォントではなくラベルの)を変更しても効果はありますが、何らかの理由でテキストがすべて台無しになっています。 混乱したテキスト

ここにコードの断片があります:Room.java:

Stage stage = new Stage();
camera = new OrthographicCamera(WIDTH,HEIGHT);
camera.position.set(WIDTH/2,HEIGHT/2,0);
camera.update();
stage.setCamera(camera);
stage.setViewport(WIDTH, HEIGHT, false);
public void resize(int width, int height){
    ppux = width/WIDTH;
    ppuy = height/HEIGHT;
    stage.setViewport(Room.WIDTH,Room.HEIGHT,false);
}
public void render(float delta){
    stage.act(delta);
    stage.draw();
}

Help_Manager.java

BitmapFont font = new BitmapFont();
LabelStyle style = new LabelStyle();
Label text;
style.font = font;
text = new Label(instructions[0],style);
text.setText(instructions[stage]);
text.setBounds(0,0,16,4);
//text.setFontScale(0.1f);
room.stage.addActor(text);

では、どうすれば自分のレーベルを協力させることができますか?助けてくれてありがとう!

4

1 に答える 1

2

さて、私はフォントがデフォルトで位置に整数を使用していることを発見しました。小さいカメラサイズとステージビューポートを使用する場合、文字をより正確に配置する必要があるため、font.setUseIntegerPosistions(false);を変更する必要がありました。また、ラベルの結合を設定すると、使用できるスペースが定義されるだけで、同じフォントとサイズのテキストで埋められていることもわかりました。同じものを大きい/小さい箱に入れます。(これは、ラベルの高さを増やし、上限を上げるとテキストが上に移動し、テキストが上から始まる理由を説明しています)。フォントのサイズを実際に変更するにはtext.setFontScale();

于 2013-03-27T04:04:56.193 に答える