在上一篇文章中,我们提到了图片必须是2的n次方的问题。但是随着Libgdx的不断完善和发展,使用一些工具就

可以很好的解决了这样一个问题,但是它的功能又不仅仅只限于此,那么下面就来让我们看看TexturePacker-Gui

具的使用,我们又称之它为图片整合工具

一、TexturePacker-Gui简介

TexturePacker-Gui是一个可视化版本的图片整合工具。这个工具的用途很简单,就是一个将小图片整合成一张

大图片,在把大图片打包成可查找的图片。而且通过TexturePacker-Gui工具的使用我们可以彻底解决使用不是2的N

次方的图片。

TexturePacker-Gui的下载地址

大家最好下载TexturePacker-Gui 3.1.0版,这个版本是个稳定版,如下图所示:

二、TexturePacker-Gui使用

1、下载完之后,将其解压。解压后你会发现里面有一个名为“test me!”的文件夹,点击打开里面有一个input 和

output 文件夹,这两个文件夹就是负责处理图片的。在 input 文件夹中,放入你要打包的图片,在output中得到输出

的图片和pack文件。如图所示:

2、界面的介绍如下图,这里特别注意,尽量将文件放在提供的“test me!”文件夹下的input和output文件夹下面,这

样可以减少不必要的麻烦。

按照上图中的顺序来讲解,也是我们操作的步骤:

① 新建一个pack文件,我这里命名为“test”;

② 输入文件目录,建议选择“test me!”文件夹下的input文件夹;

③ 输出文件目录,建议选择“test me!”文件夹下的output文件夹;

④这块区域是用来配置文件属性的,一般选择默认的就可以了,可以跳过此步骤;

⑤基本配置完成之后,点击“打包按钮”启动打包;

⑥打包成功之后,会在图片的预览区域预览打包后的图片。

3、打包好的文件会在output文件夹中生成,其中包含一个pack的配置文件,这个文件是必须要用到的。

如下图所示:

4、注意:这里的pack文件只是一个配置文件,可以手动修改,也就是说我们可以讲自己所要使用的图片,根据所给

的pack的固定格式,可以编辑成我们需要的配置文件,在后面的实例演示中我会详解如何手动配置文件。

三、TextureAtlas类

1、TextureAtlas介绍

该类存放在com.badlogic.gdx.graphics.g2d包下,该类继承自Object,实现了Disposable接口。

2、TextureAtlas用途

专属于TexturePacker封装的一个类,用于加载TexturePacker打包的图片。


四、实例演示


1、我们使用前面已经打包好的图片,将input1.png和test.pack一起放入assert文件夹下


2、test.pack文件可以通过文本编辑器打开,也可以再放入assert文件夹后在Eclipse中打开,打开之后可以通过手动编辑,如下图所示:

五、实现效果图




六、项目结构图




七、代码编写


MyGame.java:

package com.example.mylibgdx05;import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;public class MyGame implements ApplicationListener {//声明变量private SpriteBatch batch;private TextureAtlas atlas;private Sprite region1, region2, region3;@Overridepublic void create() {batch = new SpriteBatch();//加载test.pack包atlas = new TextureAtlas(Gdx.files.internal("test.pack"));//创建Sprite,同时设置我们需要的大小和绘制的起点位置region1 = atlas.createSprite("test01");region2 = atlas.createSprite("test02 (non POT)");region3 = atlas.createSprite("test03 (multi shapes)");region1.setPosition(0, 0);region2.setPosition(0, 350);region3.setPosition(200, 200);}@Overridepublic void dispose() {batch.dispose();atlas.dispose();}@Overridepublic void render() {Gdx.gl.glClearColor(1, 1, 1, 1);Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);batch.begin();//绘制图片region1.draw(batch);region2.draw(batch);region3.draw(batch);batch.end();}@Overridepublic void resize(int width, int height) {}@Overridepublic void pause() {}@Overridepublic void resume() {}
}

介绍一下TextureAtlas类中的createSprite()方法:

方法 描述
createSprite(
java.lang.String name)
 
这个方法是返回一个Sprite类型的方法,而且他默认返回的是pack文件中打包的第一个 Region ,括号内部传入的是一个图片的名字。
createSprite(java.lang.String name, int index)  这个方法是返回一个Sprite类型的方法,而且他默认返回的是pack文件中编号为“index ”的region,这里的index = 是一个数值,如:index = 1、index = 2、index = 3、index = 4 ,括号内部第一个传入的是一个图片的名字,也就是同样名字的图片,但是编号不同,这个可以用来做动画。
createSprites(java.lang.String name)  这个方法是返回一个 Array <Sprite> 类型的方法,而且他默认返回的是pack文件中打包的Sprites,如果名字相同的话,也是从编号小的到编号大的开始选择,即: 例如 index = 1 - 5.

好的,这一期的内容到这里就结束了,下一期会讲解文字的绘制。

源码下载地址

写在最后:

近期有部分网友反应下载的个别资源运行会报错,博主心里有点纳闷,因为在调式运行都确保没有问题的情况下

才把资源上传上去供大家下载的。结果博主就试了一下,下载了一个之前上传过的源码,运行的时候确实是报错了,

提示的错误是找不到主程序的入口类,这让博主更郁闷了,不清楚是怎么发生的。有遇到过此问题的朋友还请留言告

之,博主一定感激不尽!

【Android LibGDX游戏引擎开发教程】第06期:图形图像的绘制(下)图片整合工具的使用...相关推荐

  1. 【Android LibGDX游戏引擎开发教程】第07期:中文字体的显示和绘制(上)

    在字体的显示和绘制中,Libgdx的作者(Mario Zechner,美国人)给我们提供了一个非常好用的工具 --Hiero,那么下面就来看看它具体的使用方法. 一.Hiero工具的使用 1.Hier ...

  2. libgdx游戏引擎开发笔记(一)引擎介绍和Helloworld

       做Android快一年了,项目也做了四五个,感觉没什么动力向前,思绪整理了一段时间,决定转入Android游戏开发,同时发现了一款强大的游戏引擎libgdx,在此边学边整理,好记性不如烂笔头嘛! ...

  3. android studio游戏摇杆开发教程,仿王者荣耀摇杆

    李子果 原创... 最近在做一个山寨版的王者荣耀,刚开始做的时候毫无头绪 摇杆的多点触控做的特别烂 经过几天的思考已完美解决所有问题,下面就和大家分享下这个摇杆的开发思路(此教程不包含游戏源码) 若有 ...

  4. libgdx游戏引擎开发笔记(十三)SuperJumper游戏例子的讲解(篇七)----各个物体的创建及其碰撞检测...

       接着上一篇,我们完成后续的扫尾工作:游戏中个物体创建及其碰撞检测,分数保存,音效处理. 1.World类:(加入所有物体,及其碰撞检测,代码里有详细注解) package com.zhf.myl ...

  5. libgdx游戏引擎开发笔记(十)SuperJumper游戏例子的讲解(篇四)---- 主游戏界面内部框架编写...

    上一讲,我们已经实现了点击play进入游戏界面但仅仅是个黑屏  今天,我们就试着编写代码让它出现游戏的一些简单场景.还是在上一讲的代码基础上,我们创建两个类:World 和 WorldRenderer ...

  6. 【Android UI设计与开发】第06期:底部菜单栏(一)使用TabActivity实现底部菜单栏

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8989063       从这一篇文章开始,我们将进入到一个应用程序主界面UI ...

  7. LibGDX游戏引擎-10-游戏地图(TiledMap)

    转载自:http://www.qiushurong.cn/2014/03/23/tiledmap/ 要做游戏地图,在libgdx中我们使用到的工具是TiledMap Editor,官方网址是:链接 T ...

  8. 鸿蒙应用开发教程第12期:被央视点名!打破垄断志在必得?

    鸿蒙操作系统诞生以来,国家一直以来都给予了最大的支持,央视也对鸿蒙系统高度重视. *图片来自网络,如侵删 近期,鸿蒙系统再次得到了央视的点名,根据央视提供的信息显示,目前鸿蒙系统的总用户数已经成功突破 ...

  9. 鸿蒙应用开发教程第15期:弹框组件教学!

    此前的手机市场上可以依靠系统划分为两个阵营,分别是安卓系统阵营与iOS系统阵营.现在国内的手机市场啊,变化可真不是一般的大. 由于此前国内手机市场上华为的巨变,不但在手机的网络上跨越了时代,在系统方面 ...

最新文章

  1. Oracle数据库基本操作(二) —— 视图、序列、索引、同义词
  2. 让机器“看见”:图像数据的特征提取方法
  3. .net 常用的插件列表
  4. python控制结构是_Python之控制结构(if、while、for)
  5. geth bootnodes
  6. 随机森林针对中文文本分类
  7. oracle 10.2 连接超时,debian9 python3.6连接oracle10.2
  8. Unrecognized option: -jrockit
  9. LeetCode 606. 根据二叉树创建字符串(递归)
  10. 最新Java校招面试题及答案
  11. java查询到更新之前的数据_Java对数据库的查询和更新操作详解
  12. 066 模块的搜索路径
  13. VC第三方界面库xtremetoolkitPro使用说明
  14. PDM系统服务器管理,PDM产品数据管理系统
  15. HDU 4966 GGS-DDU [最小树形图]
  16. 计算机视觉 响应_视觉响应式布局的自动化测试
  17. HAL-STM32-USB内部Flash虚拟U盘更新程序
  18. mvn install BUILD FAILURE : Downloading from central: https://repo.maven.apache.org/maven2/org/sp...
  19. 怪物猎人世界取得服务器信息,怪物猎人世界 Steam好友联机服务器选择工具V1.2...
  20. linux maven 发布项目,Linux下基于Maven的自动化打包发布项目

热门文章

  1. apache ab 压测
  2. 运维自动化之使用PHP+MYSQL+SHELL打造私有监控系统
  3. 数据可视化平台由哪些要素组成
  4. 如何选择数据分析工具
  5. Trie(字典)树详解
  6. 工厂利用计算机实现温度调节属于,工厂利用计算机系统实现温度调节、阀门开关,该应用属于()。A.过程控制B.数据处理C.科学计算D.C...
  7. 上门挂画服务_瀑布山水画挂在哪里好 弄懂这2点挂画没烦恼
  8. 冻库正常低压力是多少_弹涂鱼上市卖不动,还有8万斤要进冻库,市场低迷,不值钱了...
  9. c语言中注释参与程序设计的编译吗,C语言程序设计(第4章函数)6
  10. 在线日食计算机,《全日食》