我正在尝试创建一个gradle任务,根据此处的说明运行TexturePacker .(请注意,我使用的是Android Studio及其目录结构而不是Eclipse.)我首先将以下内容添加到Android Studio项目中build.gradle:
import com.badlogic.gdx.tools.texturepacker.TexturePacker
task texturePacker << {
if (project.ext.has('texturePacker')) {
logger.info "Calling TexturePacker: "+texturePacker
TexturePacker.process(texturePacker[0], texturePacker[1], texturePacker[2])
}
}
Run Code Online (Sandbox Code Playgroud)
这给出了错误
无法解析类com.badlogic.gdx.tools.texturepacker.TexturePacker
将texturePacker任务移动到build.gradle桌面项目中会产生相同的错误.根据http://www.reddit.com/r/libgdx/comments/2fx3vf/could_not_find_or_load_main_class_texturepacker2/,我还需要在桌面项目的依赖项下添加compile "com.badlogicgames.gdx:gdx-tools:$gdxVersion"到根目录build.gradle.当我这样做时,我仍然得到同样的错误.
所以我有几个问题:
这个texturePacker任务的正确位置在哪里?其中build.gradle我把这个?
如何解决依赖性问题和unable to resolve class...错误?
使用gradle运行时,如何指定输入和输出目录以及atlas文件?(假设前两个问题已经解决了.)
我是一个Android开发人员,使用LibGDX构建我的第一个游戏.阅读A LOT后,还有一件事我不明白.
我意识到我应该拥有一组图像,最高分辨率为2560x1440(用于防止丑陋的放大而不是矢量图像).
我正在使用TexturePacker打包我的图像,甚至使用线性线性来获得最高质量:
TexturePacker.Settings settings = new TexturePacker.Settings();
settings.filterMin = Texture.TextureFilter.Linear;
settings.filterMag = Texture.TextureFilter.Linear;
settings.maxWidth = 4096;
settings.maxHeight = 2048;
TexturePacker.process(settings, inputDir, outputDir, packFileName);
Run Code Online (Sandbox Code Playgroud)
我按照几个SO的建议将我的相机设置为固定的仪表并避免所有的PPM.来自Screen的C'TOR:
mCamera = new OrthographicCamera();
mCamera.viewportWidth = 25.6f; ; // 2560 / 100
mCamera.viewportHeight = 14.4f ; // 1440 / 100
mCamera.position.set(mCamera.viewportWidth / 2, mCamera.viewportHeight / 2, 0f);
mCamera.update();
Run Code Online (Sandbox Code Playgroud)
如你所见,我选择使用1米= 100像素.
现在,这意味着我应该用1/100大小绘制我的精灵,我在这里做:
TextureAtlas atlas = new TextureAtlas(Gdx.files.internal("images/pack.atlas"));
mImage = atlas.createSprite("image"));
mImage.setSize(mImage.getWidth() / 100 , mImage.getHeight() / 100);
Run Code Online (Sandbox Code Playgroud)
这有效,图像按预期显示.但是,他们被歪曲了!一个完美的圆形图像看起来像边缘像素化而不是圆形.
所以,我的问题是:
谢谢!
编辑
我要适应@ …
当我运行.jar文件时,它甚至会在显示gui之前关闭.是否有人遇到过类似的问题?我正在运行OSX El Capitan.
我有3-4张尺寸为800x800像素的图像.当我尝试使用gdx-texturepacker.jar创建.pack文件时,如果我打开条带空白X和Y选项,则无法打包并抛出错误[错误]发生异常:包装文件时出错.但如果我删除选项条空白(我真的需要),它会创建包但不服务精灵表的目的.
对于小分辨率图像,一切正常.使用stripwhitespace选项有任何大小限制吗?
任何帮助s赞赏和任何建议的其他免费纹理包装工具有利于libgdx资产.
我正在尝试从 ThreeJS 中的 Texturepacker 加载 spritesheet,其中包含图像和 json。该图像有一堆小精灵打包在一起,json 定义了图像中小精灵的位置和大小。
我尝试了3种加载方法。
使用具有不同偏移量的多个纹理实例的方法应该可以正常工作,因为我没有复制源图像,但是当我通过切换材质的纹理来运行动画时,它会使用大量的 RAM,就好像它将整个源精灵表复制到内存中一样为每一个。如果我更改动画的纹理偏移而不是使用纹理副本,它可以正常工作,但偏移更改将应用于使用相同源精灵表的每个对象。
WebGLRenderTarget 方法需要一个相机和场景来裁剪纹理以及添加到场景中的精灵。此输出无法使用,因为它不会生成原始纹理的 1:1 裁剪,而且加载速度非常慢。有没有办法在 ThreeJS 中将纹理 1:1 渲染到较小的缓冲区?
Canvas 方法效果最好,我为每个精灵创建一个画布元素,并将精灵表裁剪到每个精灵中。这是 1:1 且质量良好,但使用 spritesheet 的要点是 GPU 仅需要处理单个图像,并且这需要 HTML 加载程序。理想情况下,我不想将精灵表裁剪为较小的纹理缓冲区。
为什么将相同的大源图像与多个 THREE.Texture 对象一起使用会占用如此多的内存?我预计它只需要在内存中保留单个纹理,并且纹理对象只会显示具有不同偏移量的相同纹理。
我需要将 PVR.CCZ 图像文件转换为 PNG 图像来编辑我的图像文件。m 原始图像被删除。我使用纹理打包程序来创建 pvr 文件。
我参考此链接:-如何从 .pvr.ccz 文件恢复 PNG 图像? 但没有用。
我正在尝试使用 LibGDX 创建一个简单的游戏。我正在尝试使用 9 个补丁图像作为菜单上按钮的背景,但是似乎忽略了图像的 9 个补丁质量。
我有两个图像,“active.9.png”和“rest.9.png”。这些是代表按钮处于活动或静止状态的方形图像。我使用这个工具来创建它们:http : //romannurik.github.io/AndroidAssetStudio/nine-patches.html所以我确信它们满足 9 个补丁要求。下面是“active.9.png”的图片:

因为我正在使用 LibGDX 并且会有很多资产我想使用 TextureAtlas 来存储我的按钮图像。运行 TexturePacker 后,事情似乎仍然有效,因为图像已定义“拆分”,我认为这表明它们已被识别为 9 个补丁文件。下面是“buttons.pack”:
buttons.png
format: RGBA8888
filter: Nearest,Nearest
repeat: none
active
rotate: false
xy: 1, 1
size: 226, 225
split: 59, 57, 58, 58
orig: 226, 225
offset: 0, 0
index: -1
rest
rotate: false
xy: 229, 1
size: 226, 225
split: 59, 57, 58, 58
orig: 226, 225
offset: 0, 0
index: -1
Run Code Online (Sandbox Code Playgroud)
接下来我尝试从这个包创建一个 TextureAtlas,创建一个皮肤,并将图像加载到皮肤中。
TextureAtlas buttonAtlas = new …Run Code Online (Sandbox Code Playgroud)