Skin类主要用于存储用户界面的资源,该资源主要用于窗口部件。这些资源也包括纹理图片、位图画笔、颜色等内容。方便创建游戏组件,同时使用Skin也可以批量的粗略处理一些窗口部件。
test.json
{ com.badlogic.gdx.graphics.Color: { green: { a: 1, b: 0, g: 1, r: 0 }, white: { a: 0, b: 1, g: 1, r: 1 }, red: { a: 1, b: 0, g: 0, r: 1 }, black: { a: 1, b: 0, g: 0, r: 0 } }, com.badlogic.gdx.graphics.g2d.BitmapFont: { font: { file: test.fnt } }, com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle: { style:{ down:btnDown,up:btnUp }, }, }
文件资源位置:
核心代码:
package com.mygdx.skin; import com.badlogic.gdx.ApplicationAdapter; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.GL20; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.Button; import com.badlogic.gdx.scenes.scene2d.ui.Skin; /** * 使用skin * @author Jack(乐智) * @blog dtblog.cn * @qq 984137183 */ public class MainGame extends ApplicationAdapter { //声明skin对象 private Skin skin; //声明按钮 private Button button; //声明舞台 private Stage stage; @Override public void create() { //实例化skin对象 skin=new Skin(Gdx.files.internal("skin/test.json")); //实例化按钮 button=new Button(skin.get("style",Button.ButtonStyle.class)); //实例化舞台 stage=new Stage(); //添加按钮到舞台 stage.addActor(button); //注册舞台监听 Gdx.input.setInputProcessor(stage); } @Override public void render() { //设置屏幕背景黑色 Gdx.gl.glClearColor(0, 0, 0, 0); //清屏 Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); //更新舞台逻辑 stage.act(); //绘制舞台内容 stage.draw(); } }
执行效果: