2015-06-15 8 views
6

here yönergelerine göre TexturePacker çalıştıran bir görev görevi oluşturmaya çalışıyorum. Bu hata verdi LibGDX's Gravürlü 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]) 
    } 
} 

çözemediği sınıfının: (. Ben Eclipse yerine Android Studio ve dizin yapısını kullanıyorum unutmayın) Ben ilk Android Studio projenin build.gradle için aşağıdaki eklendi masaüstü projede build.gradle için texturePacker görevi Hareketli com.badlogic.gdx.tools.texturepacker.TexturePacker

aynı hatayı üretir. http://www.reddit.com/r/libgdx/comments/2fx3vf/could_not_find_or_load_main_class_texturepacker2/ uyarınca, masaüstü projesinin bağımlılıkları altında compile "com.badlogicgames.gdx:gdx-tools:$gdxVersion" köprüsünü build.gradle köküne eklemem gerekiyor. Bunu yaptığımda, hala aynı hatayı aldım.

  1. texturePacker görev için doğru yerdir:

    Bu yüzden birkaç soru var? Bunu hangi build.gradle kullanabilirim?

  2. Bağımlılık sorunu ve unable to resolve class... hatasını nasıl çözebilirim?

  3. Giriş ve çıkış dizinlerini ve atlas dosyasını bu notla çalışırken nasıl tanımlarım? (. İlk iki soru çözülür varsayarsak)

cevap

10

Bunun benim buildscript bağımlılıkları için GDx-araçları ekleyerek çalışma var:

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

bunu yaparak, benim masaüstünün build.gradle başardı doku packer sınıfını içe:

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

unutmayın masaüstü projenin ext texturePacker tanımladığınız gerekeceğini:

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

Bu çalışıyor, ancak giriş/çıkış yolunda "to" değerini değiştirmek zorundaydım. Şimdi maxWidth ve maxHeight'ı nasıl ayarlayabilirim? def ayarlarını çalıştırdım = new TexturePacker.Settings() settings.maxHeight = 4096 settings.maxWidth = 2048, ancak genel hata ile başarısız oluyor. – Shirane85

+1

Genellikle klasörlerimde [bir paket.json ekleyin] (https://github.com/libgdx/libgdx/wiki/Texture-packer#configuration) –

+0

Bu çözüme yönelik bir iyileştirme, "TexturePacker" içindeki Dizeleri adlandırmak olacaktır. 'bir diziyi kullanmaktan çok daha anlamlı. –