# Game-Tutorial von Quaxli Fragen



## Kin (15. Aug 2008)

Ich habe mich mal an das gameTutorial gewagt, welches hier im Tutorial Thread vermerkt ist. Da ich bereits ein Problem habe und eventl. im Laufe des Tutorials weitere hinzukommen werden, dachte ich mir, ich mache mal diesen Thread auf, um meine Fragen zu stellen.

Bin im Tut auf Seite 13 und es gibt Probs mit der FPS-Anzeige. Sie erscheint überlagert, d.h. man erkennt nichts. Wie kommt das? Auf dem Screenshot im Tutorial sind die FPS kalr zu erkennen.

MfG


----------



## squawking (15. Aug 2008)

Irgendwie scheint das gesamte Tut durcheinander zu sein. Zb soll amn irgendwann in der Klasse GamePanel auf Variablen in der Klasse Sprite zugreifen, die hier jedoch gar nicht existieren(horizontalSpeed/verticalSpeed). Gab auch noch weitere fehler, die ich allerdings selber beheben konnte. Also wenn man das Tutorial so macht, wie es beschrieben ist, funktioniert das nicht.


----------



## Kin (15. Aug 2008)

die squawking-Antwort ist von mir. 
macht der gewohnheit aus anderen Forne. Aber wieso kann man hier überhaupt als Gast unter irgendeinem namen schreiben?


----------



## lotus (15. Aug 2008)

Also ich hab das Tut auch durchgearbeitet und bin sehr gut zurechtgekommen (großes Lob!)  

wegen den FPS:
Es ist wichtig, dass die ganz zuletzt gezeichnet werden; also nach den anderen Sprites und dem Background...


----------



## Kin (16. Aug 2008)

Die FPS werden als letzes gezeichnet. Bringt aber nix. Keine Ahnung woran das liegt. Und was ist mit den angedeuteten variablen aus der klasse Sprite? wie fliessen die ein? Im Tutorial wird das nicht erwähnt.


----------



## lotus (16. Aug 2008)

Die Spielfiguren, also z.B. Helikopter oder Rakete sind Sprites...
Hier ist meine Methode paintComponents aus dem GamePanel:


```
public void paintComponent(Graphics g) {
		super.paintComponent(g);
				
		if (bg!=null) g.drawImage(bg, 0, 0, null);
		
		if (isStarted()) {
			for (Drawable draw : actors) {
				draw.drawObjects(g);
			}
		}
				
			g.setColor(Color.RED);
			g.drawString(Long.toString(fps), 10, 20);
}
```

Zuerst zeichne ich den Hintergrund dann alle Sprites und zum Schluss setze ich noch die Farbe auf Rot und lasse mir die FPS ausgeben... sieht das bei dir auch so (oder ähnlich) aus?


----------



## Kin (17. Aug 2008)

Also das erste prob hab ich gelöst. in der Methode muss zuerst clearRect() aufgerufen werden. Damit wird dann alles in dem jeweiligen Rechteck gelöscht. Somit kommt es nicht zu ungewollten überlagerungen. Ist mir zwar nicht ganz klar wieso offenbar nur ich das Prob habe und andere nicht aber was solls.
Jatzt habe ich dasProb, dass der Heli nur auf VK_RIGHT reagiert. er fliegt nur nach rechts. habe schon einiges ausprobiert aber es will einfach nicht klappen mit den andren richtungen


----------



## Quaxli (18. Aug 2008)

Du mußt nur einfach den Monitor umdrehen, dann klappt's....  :wink: 

Spaß beiseite: Die Frage läßt sich nicht beantworten, ohne daß Du Code postest. Wenn Du Fragen zum Tutorial hast, kannst Du mir auch gerne eine PN schreiben. Solange es um konkrete Probleme zum Tutorial geht, antworte ich gerne.


----------



## Kin (27. Aug 2008)

So. konnte nun alle Probleme bis hierhin lösen und wollte mal sound hinzufügen. Leider bekomme ich beim versuch die Datein zu laden eine Nullpointer-Exception. Die Datei ist vorhanden. Habe sogar mit File.separator statt / oder \ gearbeitet. Bringt alles nix.


----------



## Quaxli (28. Aug 2008)

Das Problem liegt in Zeile 195.




Nee, im Ernst: Was soll ich mit dieser Aussage anfangen? Bisschen Code und Beschreibung außen rum muß schon sein, wenn Du Hilfe willst.


----------



## Kin (28. Aug 2008)

```
SoundLib slib;
//...
slib = new SoundLib();
//...
slib.loadSound("boom", "sounds"+File.separator+"boom.wav");
```

Exception:

Exception in thread "main" java.lang.NullPointerException
	at sun.applet.AppletAudioClip.<init>(Unknown Source)
	at java.applet.Applet.newAudioClip(Unknown Source)
	at de.SoundLib.loadSound(SoundLib.java:22)
	at de.GamePanel.doInitializations(GamePanel.java:114)
	at de.GamePanel.<init>(GamePanel.java:102)
	at de.GamePanel.main(GamePanel.java:237)


----------



## Quaxli (28. Aug 2008)

Probier mal:

slib.loadSound("boom", *File.separator*+"sounds"+File.separator+"boom.wav");

bzw. eben:

slib.loadSound("boom","*/*sounds/boom.wav");

und der Ordern sounds muß natürlich im Verzeichnis sein, in dem sich Deine class-Dateien befinden.


----------



## Kin (28. Aug 2008)

funktioniert leider nicht. Die Datei ist definitiv im Ordner sounds vorhanden. Und dieser liegt im Verzeichnis des Projekts.


----------



## Quaxli (28. Aug 2008)

Könntest Du mir mal einen Screenshot Deines Verzeichnisses schicken? So daß man die Datei und den ganzen Pfad bzw. die Projektstruktur sieht?


----------



## Kin (28. Aug 2008)

...\workspace\Game_Tutorial\sounds

Da liegen dann alle sounds drin.
in Game_Tutorial liegen die Ordner bin und src .


----------



## Quaxli (28. Aug 2008)

Dann verschieb mal den sounds-Ordner nach bin.


----------



## Kin (28. Aug 2008)

Ok. daran lag es. und wieso ist das so? ich dachte, die ordner müssen immer in das Projekt-Verzeichnis??


----------



## Quaxli (29. Aug 2008)

Du hast weder das Tutorial noch mein Posting von gestern 13:41 richtig gelesen.  :noe:  :wink: 
Der Ordner muß im gleichen Verzeichnis wie die class-Dateien sein und das ist in Deinem Fall das bin-Verzeichnis.


----------



## Kin (29. Aug 2008)

scheinbar haste recht. mmh. vielleicht fange ich niochmal von vorne an und nehme mir etwas mehr zeit dafür.


----------

