ciao a tutti,
ho appena finito lo sviluppo di un piccolo advertgame per pc fatto con java.
brevemente è un gioco 2d isometrico con un gameplay tipo pac-man che gira fullscreen utilizzando il double buffering del framework.
ho la necessità di distribuirlo su cdrom, su questo forum ho letto di un software che si chiama exe2j l'ho provato e mi pare la soluzione ideale.
ho un problema però sulla lettura dei file .png delle immagini e dei file .txt
questo è il metodo che uso per leggere tutti i file di testo:
codice:
public static String[] TextFromFile(String fileName)
{
try
{
InputStream is = new Loader().getClass().getResourceAsStream("/res/"+fileName+".txt");
StringBuffer str = new StringBuffer();
byte b[] = new byte[1];
while ( is.read(b) != -1 )
{
str.append(new String(b));
}
is.close();
return str.toString().split("\n");
}
catch (IOException e)
{
System.out.println("IOException "+ fileName);
return new String[0];
}
}
questa è la funzione che uso per caricare i png (aggiungo anche la funzione blockforimage che uso per attendere che il caricamento sia finito - _parent è il riferimento al Frame contenitore dell'applicazione):
codice:
//passo il percorso relativo dell'immagine e le dimensioni della singola texture
public void loadTextureSet(String path, int textureSize, int textureSetIndex)
{
System.out.println("loadTextureSet: "+path);
try
{
//caricamento immagine
Image img = Toolkit.getDefaultToolkit().createImage(TextureFactory.class.getResource("/res/"+path));
blockForImage(img);
//setup del set
_tSize = textureSize;
_textureSets[textureSetIndex] = new TextureSet(_parent, textureSetIndex);
_textureSets[textureSetIndex].init(img);
}
catch (Exception e)
{
System.out.println("****errore durante il caricamento dell'immagine****");
System.out.println(path);
e.printStackTrace();
}
}
private void blockForImage(Image img)
{
MediaTracker mt = new MediaTracker(_parent);
try
{
mt.addImage(img, 0);
mt.waitForID(0);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
tutto questo funziona se nella stessa posizione del jar ho la cartella delle risorse, ma non funziona con le risorse all'interno del jar.
a questo punto non so se sia il mio jar che ha problemi o non è questo il modo giusto per caricare le risorse.
il jar è così composto:
+META-INF
-manifest.mf
+res
-+level01
---files txt e png
-+level02
---files txt e png
-+level03
---files txt e png
-files txt e png
classi dell'applicazione
any ideas???
grazie!