# Slick Lib - Bilder einlesen funktioniert nicht



## DominikST (18. Jul 2012)

Hey Leute, 

ich habe vor kurzem angefangen, mich mit Slick zu beschäftigen, da ab einer bestimmten Größe des Spiels Java2D(wie bei Quaxlis Tutorial beschrieben) etwas ungenau und langsam wird. Aus Gewohnheit, und um alte Spiele leichter nach Slick zu portieren, habe ich Quaxlis Ansatz in Slick nachprogrammiert. Klappt auch alles ohne Probleme, ist viel genauer, einzig das Laden der Bilder hakt ein wenig. Da Slick ja eine eigene Bilderklasse verlangt, um Animationen zu erstellen(bei Quaxli waren es ja BufferedImages), habe ich die im Tutorial besprochene "loadPics" Methode so abgeändert, das anstatt Buffered- SlickImages geladen werden. Hier der Code:


```
private Image[] loadPic(String path, int pics)
{
	BufferedImage source = null;
	BufferedImage[] anim = new BufferedImage[pics];
	URL pic_url = getClass().getClassLoader().getResource(path);
	try 
	{
		source = ImageIO.read(pic_url);
	}
	catch (IOException e)
	{	
		e.printStackTrace();
	}	
	Image[] ret = new Image[anim.length]; //Dieses Array wird zurückgegeben
	for (int i = 0; i < pics; i++) 
	{
		anim[i] = source.getSubimage(i * source.getWidth() / pics, 0,source.getWidth() / pics, source.getHeight());
		try {
			ret[i] = new Image(BufferedImageUtil.getTexture("",anim[i]));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	return ret;	
	}
```

Meine Bilder habe ich in einem Ordner namens "res" neben dem src-Ordner, res befindet sich nicht im Buildpath, muss also von Hand ins spätere Jar eingefügt werden. Nun aber zum eigentlichen Problem: Ab und zu gibt es riesige Probleme beim Laden der Bilder, da Java sie anscheinend nicht finden kann. Aktuell zB wird mir eine IllegalArgumentException geworfen, wenn ich die Methode wie folgt aufrufe:

```
Image[] clouds = loadPics("Clouds.png",1);
```
.

```
Image[] clouds = loadPics("res/Clouds.png",1);
```
 klappt btw auch nicht. 
Habt ihr eine Idee, woran das liegen könnte? Es hat gestern mit einem der beiden Aufrufe geklappt, jetzt klappt gar nix mehr, obwohl ich nichts verändert habe. 

Danke schonmal


----------



## _Slack (18. Jul 2012)

Image
Gucke dier z.b.  mal diesen Construktor an:


> Image(java.lang.String ref)
> Create an image based on a file at the specified location



Auch das solltest du dier mal angucken 

Damit sollte das ganze ganz einfach klappen.

Hoffe ich konnte helfen.


----------



## _Slack (18. Jul 2012)

Entschuldigung für den Doppelpost. Ich wollte auf 'Vorschau' klicken und bin auf 'Antworten' kommen.
[OT]Wenn ein Mod die Posts zusammenfügen würde, würde mich das nicht stören.[/OT]

Aber zum problem:
Du bekommst eine [JAPI]IllegalArgumentException[/JAPI] und das ist auch ganz logisch.
Du musst doch zwischen Slick Image und Jave [JAPI]Image[/JAPI] unterscheiden.
Woher soll die JVM bei dier den wissen, welches Image gemeint ist?

^Das gehört in den oberen Post integriert.


----------

