Ответ 1
-
Зарегистрируйте свою таблицу для режима отладки
table.debug();
-
Вызвать
render()
методTable.drawDebug(stage);
Я рисую таблицу в использовании игровой среды libgdx. Все делается отлично, чего я пытался достичь. Теперь мне нужно отображать границы ячеек таблицы, но пока ничего не найдено. Я также склонен использовать отладочные пограничные линии для полной цели, но также не мог изменить их цвет.
Вот мой код.
Table table = new Table();
table.setFillParent(true);
table.left().top();
table.add(new Label("Results", new LabelStyle(font, Color.BLACK))).colspan(2).expandX();
table.row();
table.add(new Label(text_you_score, new LabelStyle(font, Color.BLACK)));
table.add(new Label(text_actual_score, new LabelStyle(font, Color.BLACK)));
return table;
Существует множество свойств для таблицы и ячейки, но не для свойства border. Мы также можем рисовать линии сетки вручную, но это не будет работать отлично на каждом разрешении устройства, которое я думаю. Любая помощь или идея высоко оценены. Благодаря
Зарегистрируйте свою таблицу для режима отладки
table.debug();
Вызвать render()
метод
Table.drawDebug(stage);
Это основано на libGDX 1.5.3:
Решением этого является использование NinePatch в качестве фонового изображения для вашего Table
.
NinePatch patch = new NinePatch(new Texture(Gdx.files.internal("background.png")),
3, 3, 3, 3);
NinePatchDrawable background = new NinePatchDrawable(patch);
Table table = new Table();
table.setBackground(background);
Используя числовые переменные, вы можете изменить радиус границы. Убедитесь, что это соответствует файлу png.
Я добился отображения строк отладки, перейдя от использования ShapeRenderer
к вызову table.drawDebug(shapeRenderer shapes)
(который я не мог получить) к использованию stage
и добавлению таблицы в качестве актера.
пример, связанный в ответе выше, ясно показывает это, но вот короткий фрагмент для ссылки. Это на libGDX 1.5.3.
public class MyGdxGame extends ApplicationAdapter {
Texture img;
Stage stage;
@Override
public void create () {
img = new Texture("badlogic.jpg");
stage = new Stage();
final Skin skin = new Skin();
Label.LabelStyle style = new Label.LabelStyle(new BitmapFont(),Color.WHITE);
TextField.TextFieldStyle textFieldStyle = new TextField.TextFieldStyle();
textFieldStyle.fontColor = Color.WHITE;
textFieldStyle.font = new BitmapFont();
skin.add("default", style);
skin.add("default", textFieldStyle);
// Keep your code clean by creating widgets separate from layout.
Label nameLabel = new Label("Name:", skin);
TextField nameText = new TextField("",skin);
Label addressLabel = new Label("Address:", skin);
TextField addressText = new TextField("",skin);
Table table = new Table();
table.add(nameLabel); // Row 0, column 0.
table.add(nameText).width(100); // Row 0, column 1.
table.row(); // Move to next row.
table.add(addressLabel); // Row 1, column 0.
table.add(addressText).width(100); // Row 1, column 1.
table.setOriginX(0);
table.setOriginY(0);
table.setX(200);
table.setY(200);
table.debug();
stage.addActor(table);
}
@Override
public void render () {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
public void resize (int width, int height) {
stage.getViewport().update(width, height, true);
}
public void dispose () {
stage.dispose();
}
}