【Android LibGDX游戏引擎开发教程】第06期:图形图像的绘制(下)图片整合工具的使用
在上一篇文章中,我们提到了图片必须是2的n次方的问题。但是随着Libgdx的不断完善和发展,使用一些工具就
可以很好的解决了这样一个问题,但是它的功能又不仅仅只限于此,那么下面就来让我们看看TexturePacker-Gui工
具的使用,我们又称之它为图片整合工具。
一、TexturePacker-Gui简介
TexturePacker-Gui是一个可视化版本的图片整合工具。这个工具的用途很简单,就是一个将小图片整合成一张
大图片,在把大图片打包成可查找的图片。而且通过TexturePacker-Gui工具的使用我们可以彻底解决使用不是2的N
次方的图片。
大家最好下载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; @Override
public 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);
} @Override
public void dispose() {
batch.dispose();
atlas.dispose();
} @Override
public 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();
} @Override
public void resize(int width, int height) {
} @Override
public void pause() {
} @Override
public void resume() {
}
}
介绍一下TextureAtlas类中的createSprite()方法:
| 方法 | 描述 |
|---|---|
createSprite( |
这个方法是返回一个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期:图形图像的绘制(下)图片整合工具的使用的更多相关文章
- 【Android LibGDX游戏引擎开发教程】第08期:中文字体的显示和绘制(下)
在上一篇的文章中,我们介绍了Hiero这个非常好用工具的使用,但是LIbgdx的BitmapFont不支持多图,常用汉字 3500个,你总不能用hiero自己做吧,那怎么办呢?这其实微软早就解决这个问 ...
- 【Android LibGDX游戏引擎开发教程】第07期:中文字体的显示和绘制(上)
在字体的显示和绘制中,Libgdx的作者(Mario Zechner,美国人)给我们提供了一个非常好用的工具 ——Hiero,那么下面就来看看它具体的使用方法. 一.Hiero工具的使用 1.Hier ...
- 基于libgdx游戏引擎开发的飞天猫
闲来没事学学游戏,这是鄙人第一个小游戏——飞天猫 1,基于Android开发的小游戏,至少Android2.2以上的系统. 2,界面简洁,美观,游戏易操作,上手快. 3,可以左右摇摆手机来改变飞天猫的 ...
- libgdx游戏引擎教程
第一讲:libgdx游戏引擎教程(一)性能优良的游戏引擎—libgdx http://www.apkbus.com/android-57355-1-1.html 第二讲: libgdx游戏引擎教程(二 ...
- 或许您还不知道的八款Android开源游戏引擎
很多初学Android游戏开发的朋友,往往会显得有些无所适从,他们常常不知道该从何处入手,每当遇到自己无法解决的难题时,又往往会一边羡慕于iPhone下有诸如Cocos2d-iphone之类的免费游戏 ...
- [转载]或许您还不知道的八款Android开源游戏引擎
或许您还不知道的八款Android开源游戏引擎 分类: 技术文章 2010-08-04 20:27 17430人阅读 ...
- Android 2D游戏引擎AndEngine配置环境
Android 2D游戏引擎AndEngine配置环境 1.2 配置环境 在任何编程中,都需要一些软件或者硬件的支持.否则,没有硬件软件是不可能存在的,而想要编写对应语言的的程序,这需要对应语言库和 ...
- 【Cocos2d-x游戏引擎开发笔记(25)】XML解析
原创文章,转载请注明出处:http://blog.csdn.net/zhy_cheng/article/details/9128819 XML是一种非常重要的文件格式,由于C++对XML的支持非常完善 ...
- 推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库
推荐一些好用的 HTML5 & JavaScript 游戏引擎开发库 0. 引言 如果你是一个游戏开发者,并且正在寻找一个可以与 JavaScript 和 HTML5 无缝工作的游戏引擎.那么 ...
随机推荐
- 运行于64操作系统上的C#客户端通过WCF访问Oracle数据库不兼容问题
运行平台: Windows 7 64位操作系统 运行环境: IIS 7 编程语言:C# 数据库: 32位的Oracle 10g 运行原因:64位操作系统C#客户端程序通过WCF访问ORACLE数据库 ...
- BZOJ 3402: [Usaco2009 Open]Hide and Seek 捉迷藏
题目 3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec Memory Limit: 128 MB Description 贝 ...
- xen虚拟机操作整理
1,登陆物理机器 2,查看物理机建立虚拟机的列表 root:~ # xm li Name ID Mem VCPUs State Time(s) Domain-0 0 49450 8 r----- 52 ...
- Jmeter接口測试
一.创建project.引包 1.创建JAVAproject 2.引入Jmeter中lib\ext基础包:ApacheJMeter_java.jar.ApacheJMeter_core.jar 3.引 ...
- cocos2d-x 源代码 :可以循环CCScrollView (,代码已被重构连接使用)
cocos2d-x来源合计文件夹 http://blog.csdn.net/u011225840/article/details/31743129 1.准备工作 想弄懂可循环的CCscrollView ...
- 也谈.NET MVC 2 + ExtJS的部署问题
由于业务需要,笔者刚进到一个项目组,由于没有美工,前台采用ExtJs + MVC 2 ,迭代1的项目做的还算比较顺利,至少在本机上是运行没有任何问题的, 但是为了给客户演示,我兴高采烈的将网站部署在I ...
- 数据完整性(Data Integrity)笔记
因数据库存储数据要持之以恒,数据库中的表需要一些方法验证各种数据类型.不仅仅局限于数据类型,还有唯一值,值的范围,或者某列的值和另外一个表中的列匹配. 当你在定义表的时候其用这些数据验证方法.这叫做声 ...
- 对面向对象的理解—— SAP电面(1)
对于C++面向对象的理解 面向对象是在结构化设计方法出现很多问题的情况下应运而生的.结构化设计方法求解问题的基本策略是从功能的角度审视问题域.它将应用程序看成实现某些特定任务的功能模块,其中子过程是实 ...
- STL之deque(双向队列)
deque双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素,deque在接口上和vector非常相似,下面列出deque的常用成员函数: deque在vector函数的基础上增 ...
- codeforces 463E . Caisa and Tree
题目链接 给一棵树, 两种操作, 一种是将点u的权值改为y, 另一种是查询根节点到点u的路径上, gcd(v, u)>1的深度最深的点v. 修改操作不超过50次. 这个题, 暴力可以过, 但是在 ...