GVKun编程网logo

LibGDX:过滤缩放的TextureRegion(缩放过滤器)

14

在本文中,您将会了解到关于LibGDX:过滤缩放的TextureRegion的新资讯,同时我们还将为您解释缩放过滤器的相关在本文中,我们将带你探索LibGDX:过滤缩放的TextureRegion的奥

在本文中,您将会了解到关于LibGDX:过滤缩放的TextureRegion的新资讯,同时我们还将为您解释缩放过滤器的相关在本文中,我们将带你探索LibGDX:过滤缩放的TextureRegion的奥秘,分析缩放过滤器的特点,并给出一些关于android – LibGDX gdx-freetype BlueStacks、android – libGDX IntelliJ IDEA无法访问com.badlogic.gdx.Application、android – 使用libgdx旋转TextButton、android游戏开发框架libgdx的使用(十六)—使用TexturePacker工具加快开发速度的实用技巧。

本文目录一览:

LibGDX:过滤缩放的TextureRegion(缩放过滤器)

LibGDX:过滤缩放的TextureRegion(缩放过滤器)

我有几个对象在不同状态下具有不同的纹理,因此我使用了TextureAtlasTexturePacker制造的对象,并TextureRegion在需要的地方调整了大小。我必须调整大小,因为我不仅要同时支持720p和1080p,而且我的一些对象是根据板子的宽度和高度来调整大小的图块或光标,因为在我的游戏中这可能会改变,而板子总是占据屏幕的相同百分比。

使用Texture,我可以这样做:

texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);

但是,当我使用时TextureRegion,没有设置过滤器的选项。这导致这些TextureRegion大小调整为尖锐,块状和锯齿状。这不是很好的缩放比例,而且似乎根本没有抗锯齿。

这非常令人沮丧,因为我在制作图形上已经很糟糕了,即使现在,即使我喜欢我制作的图形,它看起来也很烂。我该如何复制TextureFilter.Linear使用a
TextureRegion而不是a 的效果Texture

答案1

小编典典

您可以打开.atlas文件,并将其filter值更改为Linear,Linear。或者,您可以使用region.getTexture()来访问该区域所属的Texture,然后对其进行调用setFilter(...)

android – LibGDX gdx-freetype BlueStacks

android – LibGDX gdx-freetype BlueStacks

我有正确的应用程序在真正的 Android设备和桌面上. Homever当我试图在BlueStacks模拟器上启动它时,我遇到了一些问题.已经下载并添加到libs .so文件,从这里 http://libgdx.googlecode.com/svn/tags/0.9.6/extensions/gdx-freetype/libs/linux32/

但仍然:

11-08 21:14:10.280: E/AndroidRuntime(1378): FATAL EXCEPTION: GLThread 9
11-08 21:14:10.280: E/AndroidRuntime(1378): com.badlogic.gdx.utils.GdxRuntimeException: Couldn''t load shared library ''gdx-freetype'' for target: Linux,32-bit
11-08 21:14:10.280: E/AndroidRuntime(1378):     at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:110)
11-08 21:14:10.280: E/AndroidRuntime(1378):     at com.badlogic.gdx.graphics.g2d.freetype.FreeType.initFreeType(FreeType.java:541)
11-08 21:14:10.280: E/AndroidRuntime(1378):     at com.badlogic.gdx.graphics.g2d.freetype.FreeTypeFontGenerator.<init>(FreeTypeFontGenerator.java:64)
11-08 21:14:10.280: E/AndroidRuntime(1378):     at com.axl.where.test.create(test.java:153)
11-08 21:14:10.280: E/AndroidRuntime(1378):     at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:334)
11-08 21:14:10.280: E/AndroidRuntime(1378):     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1356)
11-08 21:14:10.280: E/AndroidRuntime(1378):     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1118)
11-08 21:14:10.280: E/AndroidRuntime(1378): Caused by: java.lang.UnsatisfiedLinkError: Couldn''t load gdx-freetype: findLibrary returned null
11-08 21:14:10.280: E/AndroidRuntime(1378):     at java.lang.Runtime.loadLibrary(Runtime.java:429)
11-08 21:14:10.280: E/AndroidRuntime(1378):     at java.lang.System.loadLibrary(System.java:554)
11-08 21:14:10.280: E/AndroidRuntime(1378):     at    com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:106)
11-08 21:14:10.280: E/AndroidRuntime(1378):     ... 6 more

有任何想法吗 ? LibGDX 0.9.9

解决方法

您需要在libs目录中添加一个x86文件夹(沿着armeabi目录),并在其上复制此文件:

http://libgdx.badlogicgames.com/nightlies/dist/extensions/gdx-freetype/x86/

另外,你正在使用v0.9.6文件o.O使用nightlies:

http://libgdx.badlogicgames.com/nightlies/dist/extensions/gdx-freetype/

android – libGDX IntelliJ IDEA无法访问com.badlogic.gdx.Application

android – libGDX IntelliJ IDEA无法访问com.badlogic.gdx.Application

我用libGDX setup ui创建了一个项目.该
项目在 Eclipse中运行良好,但是当我在 Android Studio中导入它时,
android项目MainActivity.java抛出4个异常:
java: cannot access com.badlogic.gdx.Application
class file for com.badlogic.gdx.Application not found

java: cannot find symbol
symbol:   variable super
location: class com.vestrel00.nekko.MainActivity

java: cannot find symbol
symbol:   method initialize(com.vestrel00.nekko.KFNekko,com.badlogic.gdx.backends.android.AndroidApplicationConfiguration)
location: class com.vestrel00.nekko.MainActivity

java: method does not override or implement a method from a supertype

有没有人有办法解决吗?

解决方法

所以我已经解决了我的问题:我刚刚将libGdx.jar文件添加到我的桌面和android项目中.

解:

右键单击项目>打开模块设置>图书馆>小绿色按钮(新项目库Alt插入)> Java>然后选择libGdx.jar文件.之后,您必须将此库包含在桌面和Android项目中.

不要关闭窗口,选择模块> android>依赖性> <小绿色按钮>模块依赖关系并选择主项目.对桌面执行相同操作并按确定. 就这样.我的所有项目现在都正常工作. 这是一个图片教程.它也解释了如何运行桌面项目. http://imgur.com/a/IBFIV

android – 使用libgdx旋转TextButton

android – 使用libgdx旋转TextButton

我有一个textButton,我想将它放在旋转90度的屏幕上.

由于某些原因,与TextButton对象相关的所有旋转方法(rotate(),setRotationAngle()等)都无法正常工作.

所以我实现了扩展TextButton和覆盖draw()方法的新类:

@Override
public void draw(SpriteBatch batch,float parentAlpha) {
     Matrix4 rotationMatrix = new Matrix4();
     Matrix4 oldMatrix = batch.getTransformMatrix();
     rotationMatrix.idt();
     rotationMatrix.rotate(new Vector3(this.getX(),this.getY()+this.getHeight(),0),rotationAngle);
     batch.setTransformMatrix(rotationMatrix);
     super.draw(batch,parentAlpha);
     batch.setTransformMatrix(oldMatrix);
}

其中rotationAngle等于90.0.由于某种原因,按钮不会旋转90度,但是对于某些未知的度数.

UPD

我切换回TextButton对象并做了:

newGame.setTransform(true);
newGame.rotate(90);

它几乎起作用意味着按钮中的文本被正确旋转,但按钮的背景仍保留在它的位置:

所以我的问题是:为什么会发生这种情况,我该如何解决这个问题呢?

解决方法

我根据 documentation实现了旋转小部件

这是我的代码:

Table buttonContainer = new Table(skin);
buttonContainer.setTransform(true);
buttonContainer.add(button1);
buttonContainer.row().pad(10);
buttonContainer.add(button2);
rotatingActor = buttonContainer;

然后:

rotatingActor.setRotation(newDegree);

即使小部件被旋转,所有点击处理程序等也按预期工作.

android游戏开发框架libgdx的使用(十六)—使用TexturePacker工具加快开发速度

android游戏开发框架libgdx的使用(十六)—使用TexturePacker工具加快开发速度

libgdx绝对是一个相当不错的游戏引擎,最近一段时间的学习我感觉收获很多。但是我一直对于libgdx加载的图片大小必须是2的次方感到很纠结。

如果是一张一般的图片想在libgdx中使用的话就需要自己去用ps什么的把图像拉一下,一两张没关系,但是数量大了还是有点烦。

而且拉大的图片还需要TextureRegion来切割一下,实在麻烦。仔细看了一下libgdx的tool包,发现早有解决方案了。

具体的类是imagepacker,在com.badlogic.gdx.tools.imagepacker包之中。它可以将多张图片合并在一张之中。同时可以通过原有文件的文件名获得图片资源。

这里有几张图片:

将它们放在一个文件夹中(这个文件夹没有其他东西了)。引用gdx-tool.jar。

代码如下:

Settings settings = new Settings();
settings.alias = true;
TexturePacker.process(settings, "D:\\img", "D:\\img\\output");

在output文件夹中可以找到两个文件,其中一个是合成好的图片

另外一个名为pack,其中记录了源文件的位置,大小和名称。

点击查看pack文件内容

将图片和pack文件拷贝到项目目录。这里说明一下,pack文件的文件名可以随便改,合成的图片如果需要改名的话就需要改一下pack文件里面的内容了。

使用时的具体类是TextureAtlas。

代码:

package com.cnblogs.htynkn.game;

import com.badlogic.gdx.ApplicationListener;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.scenes.scene2d.Stage;
import com.badlogic.gdx.scenes.scene2d.ui.Image;

public class TexturePackerDemo implements ApplicationListener {

Stage stage;

@Override
public void create() {
stage= new Stage(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), false);
TextureAtlas atlas= new TextureAtlas(Gdx.files.internal("imgs/pack")); // 根据pack文件获取所有图片
Image image1= new Image(atlas.findRegion("14")); // 获取名为14的图片,并创建一个Image对象
image1.scaleX=image1.scaleY=0.2f;
image1.x=image1.y=0;
Image image2= new Image(atlas.findRegion("xpic2766"));
image2.x=image2.y=40;
image2.scaleX=image2.scaleY=0.5f;
stage.addActor(image1);
stage.addActor(image2);
}

@Override
public void dispose() {
stage.dispose();
}

@Override
public void pause() {
// TODO Auto-generated method stub

}

@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}

@Override
public void resize( int width, int height) {
// TODO Auto-generated method stub

}

@Override
public void resume() {
// TODO Auto-generated method stub

}

}

效果:

 

写在最后:

1.使用TexturePacker的最大好处就是方便,我觉得从根本让加载图片大小的问题对开发者透明了。

2.使用TexturePacker提升了效率,比起一张一张图片加载,合并图无疑是个很好的选择。

3.使用TexturePacker应该注意不要盲目合并,将在一个场景中使用的图片合并在一起,其他场景或暂时用不到的图片合并到其他中去。我个人认为一张图片的大小不超过1024*1024为佳。

4.TexturePacker工具用着不怎么顺手。我觉得每次新建一个java项目,然后填写路径很麻烦。热心的网友做了GUI版本的。

下载地址:http://www.ctdisk.com/file/4279795

项目地址:http://code.google.com/p/libgdx-texturepacker-gui/


原文链接: http://www.cnblogs.com/htynkn/archive/2012/01/19/libgdx_16.html

今天关于LibGDX:过滤缩放的TextureRegion缩放过滤器的分享就到这里,希望大家有所收获,若想了解更多关于android – LibGDX gdx-freetype BlueStacks、android – libGDX IntelliJ IDEA无法访问com.badlogic.gdx.Application、android – 使用libgdx旋转TextButton、android游戏开发框架libgdx的使用(十六)—使用TexturePacker工具加快开发速度等相关知识,可以在本站进行查询。

本文标签:

上一篇androidstudio设置java版本1.7(android studio设置jdk版本)

下一篇IntelliJ IDEA 13.1缺少运行/调试窗口(idea打不开说缺少环境变量)