Quaxlis 2D Tutorial....Probleme nach hinzufügen der Kollisionsabfrage

Keiner hat Lust, sich von einem Popup-verseuchten One-Click-Hoster dein gesamtes Projekt runterzuladen, zu entpacken, und nach dem Fehler zu suchen. Wie wär's, wenn du den Fehler eingrenzt und uns hier direkt den enstsprechenden Code zeigst. Du sagst, nach Einfügen der Kollisionsabfrage werden die Raketen nicht mehr angezeigt. Also, poste mal den Code für Kollisionsabfrage und für's Zeichnen der Raketen.
 
Keiner hat Lust, sich von einem Popup-verseuchten One-Click-Hoster dein gesamtes Projekt runterzuladen, zu entpacken, und nach dem Fehler zu suchen. Wie wär's, wenn du den Fehler eingrenzt und uns hier direkt den enstsprechenden Code zeigst. Du sagst, nach Einfügen der Kollisionsabfrage werden die Raketen nicht mehr angezeigt. Also, poste mal den Code für Kollisionsabfrage und für's Zeichnen der Raketen.

Hier mal alle Funktionen/Methoden die mit den Raketen zu tun haben...

Java:
	private void createRockets() {
		int x = 0;
		int y = (int) (Math.random() * getHeight());
		int hori = (int) (Math.random() * 2);

		if (hori == 0) {
			x -= 30;
		} else {
			x = getWidth() + 30;
		}

		Rocket rock = new Rocket(rocket, x, y, 100, this);
		if (x < 0) {
			rock.setHorizontalSpeed(100);
		} else {
			rock.setHorizontalSpeed(-100);
		}

		ListIterator<Sprite> it = actors.listIterator();
		it.add(rock);
	}

Java:
	public void createExplosion(final int x, final int y) {
		ListIterator<Sprite> it = actors.listIterator();
		it.add(new Explosion(explosion, x, y, 100, this));
	}

Java:
	@Override
	public void actionPerformed(final ActionEvent e) {
		if (isStarted() && e.getSource().equals(timer)) {
			createRockets();
		}

	}

Java:
	private void doLogic() {
		for (ListIterator<Sprite> it = actors.listIterator(); it.hasNext();) {
			Sprite r = it.next();
			r.doLogic(delta);

			if (r.remove) {
				it.remove();
			}
		}

		for (int i = 0; i < actors.size(); i++) {
			for (int j = 0; j < actors.size(); j++) {
				Sprite s1 = actors.get(i);
				Sprite s2 = actors.get(j);
				s1.collidedWith(s2);
			}
		}

		if (copter.remove && gameover == 0) {
			gameover = System.currentTimeMillis();
		}
		if (gameover > 0) {
			if (System.currentTimeMillis() - gameover > 3000) {
				stopGame();
			}
		}
	}

Java:
	@Override
	public boolean collidedWith(final Sprite s) {

		if (remove) {
			return false;
		}

		if (this.intersects(s)) {
			if (s instanceof Heli) {
				parent.createExplosion((int) getX(), (int) getY());
				parent.createExplosion((int) s.getX(), (int) s.getY());
				remove = true;
				s.remove = true;
				return true;
			}
			if (s instanceof Rocket) {
				parent.createExplosion((int) getX(), (int) getY());
				parent.createExplosion((int) s.getX(), (int) s.getY());
				remove = true;
				s.remove = true;
				return true;
			}
		}
		return false;
	}

Oder schau' wo Du Fehler beim Abschreiben gemacht hast.😉

Hab ich schon ^^

PS:
Ich hab auch schon in die verschiedenen Methoden syso's gemacht, die Methoden werden richtig aufgerufen.
 
So, Fehler ist gefunden, nachdem ich den kompletten Code zur Verfügung hatte.
Doch ein Falsch-Abschreiber. 😉😉😉 - einmal nicht genau hingeguckt und schon ist's passiert 🙂
(Es sind immer die Kleinigkeiten, die den meisten Ärger machen 😀)

Für alle die es interessiert hier nochmal die Lösung:

Statt

Java:
        for (int i = 0; i < actors.size(); i++) {
            for (int j = 0; j < actors.size(); j++) {
                Sprite s1 = actors.get(i);
                Sprite s2 = actors.get(j);
                s1.collidedWith(s2);
            }
        }

muß es in Zeile 2 heißen

Java:
        for (int i = 0; i < actors.size(); i++) {
            for (int j = i+1; j < actors.size(); j++) {
                Sprite s1 = actors.get(i);
                Sprite s2 = actors.get(j);
                s1.collidedWith(s2);
            }
        }

da sonst durch j =0 die Rakete mit sich selbst "kollisionsgeprüft" wird und aus dem Spiel fliegt.
 
Du solltest mehr lesen - besonders das E-Mail, daß ich Dir zurück geschrieben habe. 😀😀😀

In der Klasse Sprite gibt es noch einen kleinen Tippfehler: In der Methode doLogic steht bei Dir

Java:
if (animation > delta)

es muß aber heißen:

Java:
if (animation > delay)

Dann funktionieren alle Animationen auch die der Raketen und des Helikopters 🙂
 
Dann funktionieren alle Animationen auch die der Raketen und des Helikopters 🙂[/QUOTE]

Danke, hab leider das problem, dass ich hier auf der Arbeit nur mitm Handy draußen inner Raucherpause mein E-Mail-Fach abrufen kann 😳
 
So, ich habe nochmal ne .jar fertig gemacht.

Was kann das Spiel?
-Die Grundlagen aus Quaxlis Tutorial
-Mit "M" können die Sounds an-/ausgeschaltet werden
-Eingabe des Spielernamens (pflicht)
-Highscore Funktion
-Auswahl des Schwierigkeitsgrades (Leicht, Normal und Schwer)
-Für jede Schwierigkeitsstufe einen eigenen Highscore
-Ablage des Highscores ins Hom-Verzeichnis des Users

Was soll noch dazu kommen?
-Ablage der Scores in eine Datei (immo 3), is net schwer, aber bin immo zu faul xD
-Bessere gestaltung des Gui
-Handbuch ^^
-Pause-Funktion
-Level-System um die Schwierigkeit im Spiel zu erhöhen...

Anhang anzeigen 3651
 
Ich geh mal davon aus, dass du ein wenig Feedback haben willst 🙂

Was mir aufgefallen ist:
- Die Wolken fliegen oben über den Text, so dass man ihn nicht lesen kann
- Helis Propeller ist nicht immer zu sehen, wenn man in den dunkleren Bereich fliegt
- Das Spiel hängt sich bei mir früher oder später auf (Hab nur leicht und normal getestet)
- Wenn ich meinen Namen eingegeben habe und danach die Schwierigkeit einstellen soll, steht da immernoch "Playername" im Text und Titel (Wirkt merkwürdig...^^)

Ansonsten zum Spielprinzip...Ist halt Quaxlis Helispiel 🙂
Wobei ich es leicht träge finde, da Heli langsamer fliegt...Für mich wirkt er dadurch schwerfälliger und als würde es ihm schwer fallen den Raketen auszuweichen. Ist aber auch nur ein Gefühl und andere können das durchaus auch anders empfinden 🙂

Also für mich ist der normale Modus zu schwer, aber ich bin in der Hinsicht auch etwas unfähig. Bei Leicht bin ich nicht weit gekommen, da mir das Spiel eingefroren ist. Schwer wollte ich nicht testen 😉

Wie die Highscore aussieht, konnt ich nicht feststellen. Ich weiß nicht obs daran liegt, dass das Spiel abgestürtzt ist oder obs am Rechner liegt, aber ich hab keine Dateien gefunden.

Ich weiß, dass hier eher Kritikpunkte stehen...Aber es ist schwierig die Idee zu beurteilen, wenn es eigentlich nicht deine war ^^ zumindestens fühlt es sich so an, weil das Spiel bzw die Idee aus Quaxlis Tutorial ist.
 
Ich geh mal davon aus, dass du ein wenig Feedback haben willst 🙂

Was mir aufgefallen ist:
- Die Wolken fliegen oben über den Text, so dass man ihn nicht lesen kann
Fixed: Bis auf die Level-Anzeige wird nichts mehr überschrieben.
- Helis Propeller ist nicht immer zu sehen, wenn man in den dunkleren Bereich fliegt
Fixed
- Das Spiel hängt sich bei mir früher oder später auf (Hab nur leicht und normal getestet)
Hmm, bis zu welchem Punktestand bist du gekommen, slebst mit der Jar komme ich ohne Probleme bis 20k Punkte
- Wenn ich meinen Namen eingegeben habe und danach die Schwierigkeit einstellen soll, steht da immernoch "Playername" im Text und Titel (Wirkt merkwürdig...^^)
Fixed

Ansonsten zum Spielprinzip...Ist halt Quaxlis Helispiel 🙂
Wobei ich es leicht träge finde, da Heli langsamer fliegt...Für mich wirkt er dadurch schwerfälliger und als würde es ihm schwer fallen den Raketen auszuweichen. Ist aber auch nur ein Gefühl und andere können das durchaus auch anders empfinden 🙂
Levelsystem eingebaut.....

Also für mich ist der normale Modus zu schwer, aber ich bin in der Hinsicht auch etwas unfähig. Bei Leicht bin ich nicht weit gekommen, da mir das Spiel eingefroren ist. Schwer wollte ich nicht testen 😉
Freut mich, dann merkt man wenigstens das die kleinen Änderungen was ausmachen ^^
Wie die Highscore aussieht, konnt ich nicht feststellen. Ich weiß nicht obs daran liegt, dass das Spiel abgestürtzt ist oder obs am Rechner liegt, aber ich hab keine Dateien gefunden.
Hmm, welches Betriebssystem?
Ich weiß, dass hier eher Kritikpunkte stehen...Aber es ist schwierig die Idee zu beurteilen, wenn es eigentlich nicht deine war ^^ zumindestens fühlt es sich so an, weil das Spiel bzw die Idee aus Quaxlis Tutorial ist.

Ich möchte ja auch gerne Kritik bekommen und dieses SPiel erstmal ausreizen bevor ich dann mal vom Grunde an anfange nen eigenes Spiel zu schreiben.
 
Zuletzt bearbeitet:
So, ich habe nochmal ne .jar fertig gemacht.

Was kann das Spiel?

-Die Grundlagen aus Quaxlis Tutorial
-Mit "M" können die Sounds an-/ausgeschaltet werden
-Eingabe des Spielernamens (pflicht)
-Highscore Funktion
-Auswahl des Schwierigkeitsgrades (Leicht, Normal und Schwer)
-Für jede Schwierigkeitsstufe einen eigenen Highscore
-Ablage des Highscores ins Hom-Verzeichnis des Users

Neu:
-Level-System um die Schwierigkeit im Spiel zu erhöhen..
-Bessere gestaltung des Gui.

Sonstiges:
-Bugfixes
-Anpassung der Schwierigkeitsstufen

Was soll noch dazu kommen?
-Ablage der Scores in eine Datei (immo 3), is net schwer, aber bin immo zu faul xD
-Handbuch ^^
-Pause-Funktion

Version 0.2.5 Beta is fertig.

Hab mich mal um nen paar Kleinigkeiten gekümmrt die Mofi angesprochen hatte, hoffe es läuft jez besser

Anhang anzeigen 3656
 
Es waren nicht viele Punkte...einmal 77 und beim anderen weiß ich nicht mehr so genau...Da bin ich mehrmals gestorben bis es abgestürtzt ist.

Der Rechner ist hier Windows xp Wo man sich immer irgendwie im Netzwerk anmeldet, daher weiß ich auch nicht genau wie das abläuft...Dadurch ist der Pfad vllt falsch...Keine Ahnung. Auf normalen Home Rechner sollte es vermutlich funktionieren 🙂

Was sonst der Rechner hat (RAM, GraKa) kann ich dir nicht sagen, da ich nicht nachschauen kann...Aber wenn ich dran denke (eher unwahrscheinlich, da ich alles mögliche vergesse) schau ich heut Abend zuhause mal ob dein Spiel da besser funktioniert.


Als Anhaltspunkt: Dein Spiel hier hat 64 fps.

(Als Vergleich: Meine angefangenen Spiele haben hier auch 64 fps und zuhause 92 fps. Daher kann der Rechner nicht viel drauf haben 😉)
 
So, ich habe nochmal ne .jar fertig gemacht.

Was kann das Spiel?
-Die Grundlagen aus Quaxlis Tutorial
-Mit "M" können die Sounds an-/ausgeschaltet werden
-Eingabe des Spielernamens (pflicht)
-Highscore Funktion
-Auswahl des Schwierigkeitsgrades (Leicht, Normal und Schwer)
-Für jede Schwierigkeitsstufe einen eigenen Highscore
-Ablage des Highscores ins Hom-Verzeichnis des Users
-Level-System um die Schwierigkeit im Spiel zu erhöhen..

Neu:
-Handbuch (Steht zwar nicht viel drinne, aber egal)
-Menü
-Spielername und Schwierigkeit muss nicht jedesmal neu eingegeben werden (ändern über das Menü)

Sonstiges:
-Bugfixes

Was soll noch dazu kommen?
-Ablage der Scores in eine Datei (immo 3), is net schwer, aber bin immo zu faul xD

Anhang anzeigen 3660
 

Neue Themen


Zurück
Oben