2015-06-15 2 views
6

Я пытаюсь создать задачу градиента, которая запускает TexturePacker в соответствии с инструкциями here. (. Обратите внимание, что я использую Android Studio и его структуру каталогов, а не Eclipse) Я первый добавил следующее build.gradle проекта Android студии:LibGDX's TexturePacker с градиентом

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]) 
    } 
} 

Это дало ошибку

не в состоянии решить класс 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 под зависимостями проекта рабочего стола. Когда я это сделаю, я все еще получаю ту же ошибку.

Так у меня есть несколько вопросов:

  1. Где находится правильное место для texturePacker задачи? Какую build.gradle я это положил?

  2. Как решить проблему с зависимостями и ошибку unable to resolve class...?

  3. Как указать каталоги ввода и вывода и файл атласа при работе с градиентом? (. Если предположить, что первые два вопроса решаются)

ответ

10

Я получил это работает, добавив GDX-инструменты для моих зависимостей buildscript:

buildscript{ 
    dependencies { 
     ... 
     classpath 'com.badlogicgames.gdx:gdx-tools:1.5.4' 
    } 
} 

, делая это, 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]) 
    } 
} 

Обратите внимание, что внутр вашего настольного проекта необходимо иметь texturePacker определены:

project.ext { 
    mainClassName = "your.game.package.DesktopLauncher" 
    assetsDir = new File("../android/assets"); 
    texturePacker = ["../images/sprites", "../android/assets", "sprites"] 
} 
+0

Это работает, но мне пришлось изменить «на» на пути ввода/вывода. Теперь, как установить maxWidth и maxHeight? Я попробовал def settings = new TexturePacker.Settings() settings.maxHeight = 4096 settings.maxWidth = 2048, но он не с общей ошибкой. – Shirane85

+1

Я обычно просто [добавляю pack.json] (https://github.com/libgdx/libgdx/wiki/Texture-packer#configuration) в своих папках –

+0

Улучшение этого решения было бы назвать строки в 'texturePacker 'более значимо, чем использование массива. –