# Probleme mit Tutorial



## stfn (2. Jun 2011)

Hallo ihr Lieben,

ich bin Java Anfänger und wollte zum Einstieg das 2D - Tutorial von Quaxli durcharbeiten. Ich bin jetzt an dem Punkt, wo der Helikopter per Cursortasten gesteuert werden kann, das funktioniert auch soweit tadellos ABER:

Während der Laufzeit spuckt die Console fortlaufend folgende Fehler aus:

```
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 4
	at Sprite.drawObjects(Sprite.java:63)
	at GamePanel.paintComponent(GamePanel.java:156)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
	at javax.swing.RepaintManager.paint(Unknown Source)
	at javax.swing.JComponent._paintImmediately(Unknown Source)
	at javax.swing.JComponent.paintImmediately(Unknown Source)
	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.seqPaintDirtyRegions(Unknown Source)
	at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
```

Dadurch läuft auch alles ziemlich ruckelig und der Heli bewegt sich in horizontaler Richtung deutlich langsamer als in vertikaler Richtung. Das ganze nervt mich im Moment ziemlich da ich keine Ahnung hab woher der Fehler kommt, den Code hab ich mittlerweile doppelt und dreifach überprüft. Damit will ich zwar nicht sagen, dass ich nicht doch etwas übersehen haben könnte, aber evtl. weiss einer von euch sofort was die Fehler verursacht und wie ich sie weg bekomme ?

Vielen dank auf jeden Fall schonmal.

stfn


----------



## Fu3L (2. Jun 2011)

Könnte mir vorstellen, dass du beim Zeichnen auf ein Bild der Animation zugreifst, das nicht existiert, bzw. du greifst auf das Vierte Bild der Animation mit get(4) zu anstatt get(3) (oder, wenns ein Array ist halt [4] anstatt von [3])...

Aber ohne Code schwer zu sagen, was genau die Ursache ist


----------



## stfn (2. Jun 2011)

Das ging ja schnell 

Ich hab nochmal in den Code geschaut, aber kann nichts falsches finden. Ich habe alles so geschrieben wie es im Tutorial erklärt wird. Nachfolgend mal die beiden Codeteile auf die in der Fehlermeldung verwiesen wird:


```
@Override
public void drawObjects(Graphics g) {
	g.drawImage(pics[currentpic], (int) x, (int) y, null);
	
}
```
Hier wird mir (logischerweise) die einzige Anweisung markiert.


```
@Override
	public void paintComponent(Graphics g){
		super.paintComponent(g);
		
		g.setColor(Color.red);
		g.drawString("FPS: " + Long.toString(fps), 20, 10);
		
		if(painter!=null){
			for(ListIterator<Sprite> it = painter.listIterator(); it.hasNext();){
				Sprite r = it.next();
				r.drawObjects(g);
			}
		}
	}
```
Und in dieser Methode stört sich Eclipse an dem r.drawObjects(g);

Hilft der Code schon weiter ?


----------



## Fu3L (3. Jun 2011)

Nicht so recht^^ Genauere Fehlermeldung wäre nötig. Außerdem natürlich die Frage, ob Sprite Drawable implementiert.

Des Weiteren müsstest du mehr aus der Klasse Sprite zeigen, da das Zustandekommen von currentPic sehr wichtig ist


----------

