LibGDX_6.1: 常用系统控件: 图片(Image)

本文链接: http://blog.csdn.net/xietansheng/article/details/50187789

LibGDX 基础教程(总目录)

1. 系统控件概述

在游戏开发中除了游戏主界面外,还有许多其他与用户交互的界面,例如设置界面,关卡选择界面,购买道具的界面等。这些界面和开发 APP 一样,需要使用到许多封装好的控件来交互,如果全都使用纹理或自定义演员来构建会变的非常麻烦。为了方便搭建交互界面和与用户之间的交互,LibGDX 封装了许多常用的系统控件,这些控件定义在 com.badlogic.gdx.scenes.scene2d.ui 包中,所有系统控件都直接或间接继承自演员类(Actor),系统控件本身也是一个演员,演员所拥有的特性(各种属性,附加 Action,添加到舞台管理等),系统控件也均拥有,这些系统控件继承并处理了演员所有的属性,不再需要我们像前面封装的自定义演员(MyActor)那样都自己处理,可以直接使用所有特性即可。接下来将通过代码简单演示几个常用控件的使用,更详细的用法和其他更多控件可自行查看 wiki 和 API 文档自行测试。

2. 图片(Image)

图片控件 Image 在舞台中表示一张图片,实际上前面章节封装的自定义演员(MyActor)可以直接用 Image 来代替,并且功能更加强大。

3. 代码示例: Image 的使用

package com.libgdx.test;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.utils.viewport.StretchViewport;

/** * 游戏主程序的启动入口类 */
public class MainGame extends ApplicationAdapter {

    // 视口世界的宽高统使用 480 * 800, 并统一使用伸展视口(StretchViewport)
    public static final float WORLD_WIDTH = 480;
    public static final float WORLD_HEIGHT = 800;

    // 舞台
    private Stage stage;

    // 纹理
    private Texture texture;

    // 图片控件
    private Image image;

    @Override
    public void create() {
        // 使用伸展视口(StretchViewport)创建舞台
        stage = new Stage(new StretchViewport(WORLD_WIDTH, WORLD_HEIGHT));

        // 创建为纹理
        texture = new Texture(Gdx.files.internal("badlogic.jpg"));

        // 创建 Image
        image = new Image(new TextureRegion(texture));

        // 设置 image 的相关属性
        image.setPosition(100, 200);
        image.setScale(0.5F, 1.0F);
        image.setRotation(-5);

        // 添加 image 到舞台
        stage.addActor(image);
    }

    @Override
    public void render() {
        // 黑色清屏
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        // 更新舞台逻辑
        stage.act();
        // 绘制舞台
        stage.draw();
    }

    @Override
    public void dispose() {
        // 当应用退出时释放资源
        if (texture != null) {
            texture.dispose();
        }
        if (stage != null) {
            stage.dispose();
        }
    }

}

运行结果:

LibGDX_6.1: 常用系统控件: 图片(Image)_第1张图片

你可能感兴趣的:(跨平台,游戏开发,libgdx)