Libgdx Pixmap 的使用

摘要:
流程比较简单,图片显示正常!由Pixmap对象,再生成一个新的Pixmap对象,然后生成新的Texture对象,再绘制到屏幕上。

Pixmap 的基本用法比较简单:

FileHandle internal = Gdx.files.internal("run1.png");
Pixmap runPixmap = newPixmap(internal);
//生成纹理
Texture runTexture = new Texture(runPixmap, Pixmap.Format.RGBA8888, false);

由 Pixmap 对象生成 Texture 对象,再绘制到屏幕上。流程比较简单,图片显示正常!

由 Pixmap 对象,再生成一个新的 Pixmap 对象,然后生成新的 Texture 对象,再绘制到屏幕上。如下代码:

FileHandle internal = Gdx.files.internal("run1.png");
Pixmap runPixmap = newPixmap(internal);
//生成纹理
Texture runTexture = new Texture(runPixmap, Pixmap.Format.RGBA8888, false);

//生成一个新的 Pixmap 对象
int pwidth =runPixmap.getWidth();
int pheight =runPixmap.getHeight();

Pixmap newPixmap = newPixmap(pwidth, pheight, Pixmap.Format.RGBA8888);
newPixmap.drawPixmap(runPixmap, 0, 0, 0, 0, pwidth, pheight);

//再由新的 Pixmap 对象生成一个新的 Texture 对象
Texture newRunTexture = new Texture(newPixmap, Pixmap.Format.RGBA8888, false);

在屏幕上显示的时候,由新生成的 Pixmap 所生成的 Texture 对象,绘制到屏幕上,颜色比源 Pixmap 生成的 Texture 对象要暗很多,如下图所示:

Libgdx Pixmap 的使用第1张

因此在生成新的 Pixmap 对象的时候,需要调整代码,如下所示:

FileHandle internal = Gdx.files.internal("run1.png");
Pixmap runPixmap = newPixmap(internal);
//生成纹理
Texture runTexture = new Texture(runPixmap, Pixmap.Format.RGBA8888, false);

//生成一个新的 Pixmap 对象
int pwidth =runPixmap.getWidth();
int pheight =runPixmap.getHeight();

//生成新 Pixmap 对象前,需要设置 Blending 模式
Pixmap.Blending blend =Pixmap.getBlending();
Pixmap.setBlending(Pixmap.Blending.None);

Pixmap newPixmap = newPixmap(pwidth, pheight, Pixmap.Format.RGBA8888);
newPixmap.drawPixmap(runPixmap, 0, 0, 0, 0, pwidth, pheight);

//为了避免其它 Pixmap 的 Blending 模式改变,最后需要恢复原 Blending
Pixmap.setBlending(blend);

//再由新的 Pixmap 对象生成一个新的 Texture 对象
Texture newRunTexture = new Texture(newPixmap, Pixmap.Format.RGBA8888, false);

经如上调整,两个 Texture 绘制到屏幕上的效果,视觉上看就没有区别了。

Libgdx Pixmap 的使用第2张

免责声明:文章转载自《Libgdx Pixmap 的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇架构之美随笔二------企业级应用架构微软自带报表rdlc操作(合并同数据项)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android与Libgdx入门实例

本文讲解如何实现Android与Libgdx各自的Hello World过程。 1. Android版Hello World 点击Eclipse快捷方式,选择New Android Application,创建project,填写相应名称。 2. 然后一路next,选择默认就ok了。 3. 创建的程序文件模型。 3. 修改界面显示字符串。 4. 选择...

Android与Libgdx环境配置

此处所说的是基于windows和android版本的libgdx环境配置。 1. 下载所需软件 JDK 1.7。 下载地址: window x86版本地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html Android SDK。 在a...

libgdx学习记录6——动作Action

libgdx中的Action类能够有效的帮助我们实现位移、旋转、缩放、淡入淡出等效果,对游戏的设计很有用。 Action是一个抽象类,本身不可以实例化。一般使用的它的继承类,常用的有 MoveToAction、MoveByAction、RotateToAction、RotateByAction、ScaleToAction、ScaleByAction、Fad...