LibGdx UI编辑器 OverLap2D 学习(2) 学习UI使用,通过Button学习

2024-01-24 01:58

本文主要是介绍LibGdx UI编辑器 OverLap2D 学习(2) 学习UI使用,通过Button学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

之前介绍了OverLap2D的基本界面,今天就来实际上手做一下
按钮,很常用的UI界面上的一个控件,这次用它来上手。


第一步创建一个新的项目
File>>New Project
这里写图片描述
弹出这个对话框,很简单填写一下项目名称,已经需要按照什么分辨率进行画布设置。
我设置的是800*480
这里写图片描述
创建完成出现一个800*480的画布

第二步导入所需资源
File>>Import To Library
这里写图片描述

  1. import mutiple images ,导入图片资源
  2. import spine/spriter animation,导入动画资源,支持spine和spriter动画
  3. import particle effect file,导入粒子效果
  4. import font,导入ttf字体文件
  5. import sprite animation,导入sprite动画
  6. import style,导入Style,暂时不能用哦!
    我们选择下方的两个图片资源,作为这次的button。
    这里写图片描述
    这里写图片描述
    (亲,需要的话,右键自己保存一下吧。)

第三步 将Image 转换为 按钮
拖拽一个浅色的图片放到画布上,然后点击右键,弹出操作菜单。
这里写图片描述
有很多操作,这些操作除了常用的复制,粘贴,剪切,删除之类的,还有3个特殊的操作,本次重要的是那个Convert To Button。其他的后面讲。

点击Convert To Button选项,左侧的树状显示控件区就会发生变化,从原来的一个Image 变成了一个 CompositeItem 包含一个Image
这里写图片描述

双击画布上的图片,进入组合控件的编辑界面。
这里写图片描述
红线标出的地方表明的就是已经进入了组合界面编辑。
右下角的图层界面也发生了变化,多出了2个图层。
这里写图片描述

  1. default ,默认层
  2. normal,按钮正常状态的图片
  3. pressed,点击后按钮的图片

第四步 把对应的图片放到对应的层下
我们现在图层面板下的所有眼睛按钮全部点灰,这样就看不到图片。
然后我们点击,normal图层的眼睛按钮,并且拖拽一个浅色的按钮放到画布上,这样就在normal层下添加了一个Image,记得把图片X,Y位置调成0。
然后点灰normal图层的眼睛按钮,点亮pressed图层的眼睛按钮,同样,我们在pressed图层添加一个深色的Image。
这里写图片描述
添加完成后,点击相对应的层,树状显示控件的界面上会对应高亮显示图层上的资源。
可以检查一下。

第五步 给Button 命名
这里写图片描述
回到主编辑界面,选中做好的button,在属性面板中identifier中输入button,给这个控件命名

第六步 导出资源。
File>>Export Settings
这里写图片描述
选择导出的位置,导出后的资源要最终放到 assets目录下,
为了方便我导出的位置就是游戏项目下Android子项目assets目录下。
下面两个属性是你texturePacker的尺寸,因为就两个图片,我用了256*256。
这里写图片描述
导出后资源是这些。

第七步 用代码调用

游戏渲染代码

package com.mygdx.game;import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.utils.Scaling;
import com.badlogic.gdx.utils.viewport.ScalingViewport;
import com.mygdx.game.stage.ButtonStage;public class MyGdxGame extends ApplicationAdapter {ButtonStage stage;@Overridepublic void create() {stage = new ButtonStage(new ScalingViewport(Scaling.fill,800f,480f));Gdx.input.setInputProcessor(stage);}@Overridepublic void render() {Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);stage.act();stage.draw();}@Overridepublic void resume() {}@Overridepublic void dispose() {stage.dispose();}@Overridepublic void pause() {}}

游戏Stage代码

package com.mygdx.game.stage;import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.utils.viewport.Viewport;
import com.uwsoft.editor.renderer.Overlap2DStage;
import com.uwsoft.editor.renderer.actor.CompositeItem;
import com.uwsoft.editor.renderer.script.SimpleButtonScript;/*** Created by Administrator on 2015/5/27.*/
public class ButtonStage extends Overlap2DStage{public ButtonStage(Viewport viewport){super(viewport);initSceneLoader();sceneLoader.loadScene("MainScene");CompositeItem button = sceneLoader.getRoot().getCompositeById("button");button.addScript(new SimpleButtonScript());button.addListener(new ClickListener(){@Overridepublic void clicked(InputEvent event, float x, float y) {Gdx.app.log("tag","button clicked");super.clicked(event, x, y);}});addActor(sceneLoader.getRoot());}
}

这里写图片描述
运行后的代码。

代码里面的黑魔法,其实就是SimpleButtonScript这个类,有兴趣的读一下吧,写的时间有点久,之后再开帖子解释具体说这个类吧。

这篇关于LibGdx UI编辑器 OverLap2D 学习(2) 学习UI使用,通过Button学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/638211

相关文章

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列

Python使用FFmpeg实现高效音频格式转换工具

《Python使用FFmpeg实现高效音频格式转换工具》在数字音频处理领域,音频格式转换是一项基础但至关重要的功能,本文主要为大家介绍了Python如何使用FFmpeg实现强大功能的图形化音频转换工具... 目录概述功能详解软件效果展示主界面布局转换过程截图完成提示开发步骤详解1. 环境准备2. 项目功能结

SpringBoot使用ffmpeg实现视频压缩

《SpringBoot使用ffmpeg实现视频压缩》FFmpeg是一个开源的跨平台多媒体处理工具集,用于录制,转换,编辑和流式传输音频和视频,本文将使用ffmpeg实现视频压缩功能,有需要的可以参考... 目录核心功能1.格式转换2.编解码3.音视频处理4.流媒体支持5.滤镜(Filter)安装配置linu

Redis中的Lettuce使用详解

《Redis中的Lettuce使用详解》Lettuce是一个高级的、线程安全的Redis客户端,用于与Redis数据库交互,Lettuce是一个功能强大、使用方便的Redis客户端,适用于各种规模的J... 目录简介特点连接池连接池特点连接池管理连接池优势连接池配置参数监控常用监控工具通过JMX监控通过Pr

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

MySQL 事务的概念及ACID属性和使用详解

《MySQL事务的概念及ACID属性和使用详解》MySQL通过多线程实现存储工作,因此在并发访问场景中,事务确保了数据操作的一致性和可靠性,下面通过本文给大家介绍MySQL事务的概念及ACID属性和... 目录一、什么是事务二、事务的属性及使用2.1 事务的 ACID 属性2.2 为什么存在事务2.3 事务