注意! 需要手动刷新 stage.draw(); 一次才可以渲染字体位置
package com.wfm.game;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Window;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
import com.badlogic.gdx.utils.viewport.StretchViewport;
/**
* @ProjectName : legend
* @Author : wfm
* @Time : 2024年5月27日 0027 下午 03:58:01
* @Description : window组件的简单使用以及一些坑
*/
public class TestWindow extends ApplicationAdapter {
Window window;
OrthographicCamera camera;
SpriteBatch batch;
Stage stage;
@Override
public void create() {
/**
* 基础组件
*/
batch = new SpriteBatch();
camera = new OrthographicCamera(800, 800);
stage = new Stage(new StretchViewport(camera.viewportWidth, camera.viewportHeight));
//窗口样式
Window.WindowStyle windowStyle = new Window.WindowStyle();
//设置字体(这里使用系统默认字体,不能使用中文)
windowStyle.titleFont = new BitmapFont();
//创建一个像素区域,用于测试渲染
Pixmap pixmap = new Pixmap(500, 500, Pixmap.Format.RGB888);
//以50%透明度填充区域
pixmap.setColor(0, 100, 100, 0.5f);
pixmap.fill();
windowStyle.background = new TextureRegionDrawable(new Texture(pixmap));
window = new Window("setting", windowStyle);
//窗口显示大小,和上面的 Pixmap 大小关系不大
window.setSize(500, 500);
window.setPosition(100, 100);
//放入到舞台
stage.addActor(window);
//需要手动刷新一次才可以渲染字体位置
stage.draw();
window.getTitleLabel().setPosition(10,-20);
}
@Override
public void render() {
stage.act();
stage.draw();
}
@Override
public void dispose() {
window.remove();
stage.dispose();
batch.dispose();
}
}