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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xietansheng/article/details/50187789

本文链接: 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();
		}
	}

}

运行结果:

sy_result.png


展开阅读全文

没有更多推荐了,返回首页