Was ist falsch(Kolision)

StrikeTom

Bekanntes Mitglied
Halllo Leute,
weiß jemand was falsch ist(ich find den fehler einfach nicht)?
Java:
	public boolean collide()
	{
			if ((y+10 >= startY) && !(x >= endX) && (x+10 >= startX) && !(y >= startY) && (y <= endX)) 
    	{
			player.setMoveable(false);
    		player.moveable = false;
    		player.setSpeed(0);
  			return true;
    	}
  		else
  		{
			player.setMoveable(true);
			player.moveable = true;
			player.setSpeed(5);
  			return false;
  		}
	}
Und noch die bewegung:
Java:
      player.y -= (keyPressed[UP] ? 15 : 0);
      player.x += (keyPressed[RIGHT] ? 7 : 0);
      player.y += (player.moveable() ? 5 : 0);
      player.x -= (keyPressed[LEFT] ? 7 : 0);
(ist natürlich in einem thread+while-schleife)
player.x/x sind die position des spielers
this.x/y die positionen der linie mit der der Spieler colidieren soll
player.moveable() gibt einen booleanwert zurück.
Danke im voraus:)
 

knoppers

Bekanntes Mitglied
Sorry, aber was soll man dir da jetzt genauer helfen. Ein bisschen Beschreibung wäre auch nicht schlecht. Nur Code nutzt auch nichts. Ein fehler von was genau? Compilierungsfehler (Sehe ich keinen)? Spielfehler? Laufzeitfehler? Was macht er beim Debuggen?
 

agentone

Bekanntes Mitglied
weiß jemand was falsch ist
Nö! Aber ich weiß, was schon auf den ersten Blick falsch, im Sinne von "hässlicher Code", ist:
Java:
player.setMoveable(false); //Ein Setter...
player.moveable = false; //... und eine öffentliche Variable, die direkt hintereinander auf denselben Wert gesetzt werden?!
und
Java:
player.moveable() //Warum nicht isMoveable() ?

Und nun zum eigentlichen, aber unbekannten Problem:
-Welchen Typs ist der Fehler (Siehe knoppers)
-Was wird falsch ausgegeben?
-Welche geometrischen Objekte (Rechteck, Kreis, Strecke) sollen auf Kollision überprüft werden?
-Was haben start/endX/Y für eine Bedeutung bei der ganzen Sache?
 

StrikeTom

Bekanntes Mitglied
Nö! Aber ich weiß, was schon auf den ersten Blick falsch, im Sinne von "hässlicher Code", ist:
Ja, ich weiß. Ich war nunmal schon am verzweifeln:(
Java:
player.moveable() //Warum nicht isMoveable() ?
Das ist nun wirklich egal
-Welchen Typs ist der Fehler
Das objekt Kolidiert nicht
-Welche geometrischen Objekte (Rechteck, Kreis, Strecke) sollen auf Kollision überprüft werden?
Kreis
-Was haben start/endX/Y für eine Bedeutung bei der ganzen Sache?
Die koordinaten der linie

Ich hoffe ich habe genug informationen gepostet.
Braucht ihr den ganzen code?
 

knoppers

Bekanntes Mitglied
Java:
if ((y+10 >= startY) && !(x >= endX) && (x+10 >= startX) && !(y >= startY) && (y <= endX))

Mit dieser Abfrage (unabhängig davon von x und was endX usw. ist, kannst du rein mathematisch gar nicht diese Objekte (Rechteck, Kreis, Strecke) gleichzeitig auf true abfragen, da brauchst du schon mathematisch etwas mehr.

Oder du posstest für diese Sache ein bisschen mehr Code mit deiner, oder einer Logic, weil hieraus kann kein Programmierer und auch kein Mathematiker so einfach irgendetwas sagen! (Ausnahme bestätigen die Regeln natürlich)

du musst ja irgendwo anders in deinem Code wenn ich das jetzt richtig verstehe noch etwas anderes mit startY usw. machen. Da ein Kreis, Rechteck, Viereck wenig, bis fast gar keine gemeinsamen geometrischen Vergleichsdaten liefern.
 
Zuletzt bearbeitet:

StrikeTom

Bekanntes Mitglied
Ich wollte eigendlich die variablen der linie benutzen:
x,y: position der linie
l: länge der linie
Das sollt mir anfangs auch genügen
Da hab ich die Kollosion so gemacht:
Java:
if (player.y + player.a >= this.y && player.x + player.a > this.x && player.x < this.x + this.l)
Als das nicht funktioniert hat hab ich erst das mit dem startX usw... gemacht
So sa dann die Klasse aus:
Java:
package SpielVersuch;

import java.awt.Color;
import java.awt.Graphics;

public class SimpleLine
{
	int startX;
	int endX;
	int startY;
	int endY;
	Figur player;
	int orientation = 10;
	public static final int HORIZONTAL = 0;
	public static final int VERTICAL = 1;
	int x, y, l;

	public SimpleLine(int orientation, int x, int y, int l, Figur f)
	{
		this.x = x;
		this.y = y;
		this.l = l;
		this.player = f;
		this.orientation = orientation;
	}
	public SimpleLine(int xs, int ys, int xe, int ye, Figur f, int a)
	{
		this.startX = xs;
		this.startY = ys;
		this.endX = xe;
		this.endY = ye;
		this.player = f;
	}
	public void paint(Graphics g)
	{
		//Will ich noch für vertikal machen
		if(orientation == HORIZONTAL)
		{
			 g.drawLine(x, y, x + l, y);
		}
//		else
//		{
//			 g.drawLine(startX, startY, endX, endY);
//		}
	}
	public boolean collide()
	{
		//hier ist das  mit x,y,l
		if (player.y + player.a >= this.y && player.x + player.a > this.x && player.x < this.x + this.l)
		{
			player.setMoveable(false);
    		player.setSpeed(0);
  			return true;
        }
		else
		{
			player.setMoveable(true);
  			player.setSpeed(5);
  			return false;
		}
//		if ((player.y+10 >= startY) && !(player.x >= endX) && (player.x+10 >= startX) && !(player.y >= startY) && (player.y <= endX)) 
//    	{
//			player.setMoveable(false);
//    		player.setSpeed(0);
//  			return true;
//    	}
//  		else
//  		{
//			player.setMoveable(true);
//			player.setSpeed(5);
//  			return false;
//  		}
	}
}
Ich hoffe es hilft weiter(Es ist etws unübersichtlich mit den vielen Komentaren)
Danke:)
 

knoppers

Bekanntes Mitglied
Sorry, aber ich glaube bei deim Programm wird dir hier so schnell keiner wirklich Hilfe geben können. Weil keiner so richtig weiss, was könnte im Moment x oder y, usw. sein.

Ich glaube du musst hier mal selber etwas mehr debuggen. Dann kommst du von alleine auf deinen Logic Fehler. Oder immer wieder dein x y und die jeweiligen Vergleichsposition für x und y ausgeben lassen. Dann wirst du sehen wo er nach deiner Meinung nach kollisieren müsste aber es nicht tut.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Review von euch erwünscht, double Rechnung falsch Java Basics - Anfänger-Themen 34
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
C negamax-Algorithmus für Tic-Tac-Toe spielt manchmal falsch Java Basics - Anfänger-Themen 10
W LocalDate toString und nach Split falsch "erkannt"? Java Basics - Anfänger-Themen 8
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
O Warum ist meine Antwort falsch? Java Basics - Anfänger-Themen 3
O Warum ist die Auswahl falsch? Java Basics - Anfänger-Themen 4
J Erste Schritte Was mache ich in meinem Code falsch. Java Basics - Anfänger-Themen 3
M Was habe ich hier falsch, dass wenn ich z.B.: 11 eingebe mir false zurück gegeben wird? Java Basics - Anfänger-Themen 2
Kapfski Was habe ich falsch gemacht? Hilfe! Java Basics - Anfänger-Themen 17
R FXMLLoader Pfad falsch`? Java Basics - Anfänger-Themen 4
S Berechnung der sleep time ist falsch Java Basics - Anfänger-Themen 46
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
J String wird in GUI falsch ausgegeben Java Basics - Anfänger-Themen 10
A Figur erkennen, aber Abweichung falsch Java Basics - Anfänger-Themen 2
J Was mache ich falsch in meiner Java Anwendung? Java Basics - Anfänger-Themen 11
N Javac -version der Befehl ist entweder falsch geschrieben oder...... Java Basics - Anfänger-Themen 8
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
A Ich habe das Gefühl etwas grundlegendes falsch zu machen Java Basics - Anfänger-Themen 6
L Ist an diesem Befehl irgendwas falsch? Java Basics - Anfänger-Themen 2
D Probleme beim Kompelieren mache ich etwas falsch ? Java Basics - Anfänger-Themen 3
M Was ist daran falsch Java Basics - Anfänger-Themen 2
A Arrays addieren- Was mache ich falsch?? Java Basics - Anfänger-Themen 2
S Code richtig / besser machbar? (Nicht sicher, ob Code selbst falsch ist) Java Basics - Anfänger-Themen 4
L AES - Irgendwas falsch? Java Basics - Anfänger-Themen 0
H Koordinaten gehen falsch ! Java Basics - Anfänger-Themen 13
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
B Wieso wird hier so viel als falsch angezeigt? Java Basics - Anfänger-Themen 2
JavaNewbie2.0 Was ist falsch? Java Basics - Anfänger-Themen 2
JavaNewbie2.0 Was ist falsch? Java Basics - Anfänger-Themen 23
D Prozente werden falsch berechnet Java Basics - Anfänger-Themen 8
F for Schleife zählt falsch Java Basics - Anfänger-Themen 6
S Variable wird falsch gesetzt Java Basics - Anfänger-Themen 5
J ArrayList wird in JTable falsch angezeigt Java Basics - Anfänger-Themen 0
D Aktuelles Datum wird falsch ausgegeben Java Basics - Anfänger-Themen 2
B Drucken: Default Paper von Drucker? Mein Drucker druckt falsch Java Basics - Anfänger-Themen 3
D Matritzenmultiplikation berechnet Werte falsch Java Basics - Anfänger-Themen 9
J ireport Designer / CSV / Sonderzeichen was läuft falsch Java Basics - Anfänger-Themen 7
W Was ist bei folgendem Code falsch? Java Basics - Anfänger-Themen 5
C Array wird falsch befüllt? Java Basics - Anfänger-Themen 7
L Methoden Histogramm, Methode berechnet falsch. Java Basics - Anfänger-Themen 7
Silvascus Was mache ich falsch? Java Basics - Anfänger-Themen 15
L Variable an andere Klasse weitergeben - Was mache ich falsch? Java Basics - Anfänger-Themen 2
C Variablen if Anweisung falsch gesetzt Java Basics - Anfänger-Themen 4
J Java rechnet -0.94 + 0.01 falsch Java Basics - Anfänger-Themen 14
J Dekrement läuft offenbar falsch Java Basics - Anfänger-Themen 6
X Warum ist das falsch -.- Java Basics - Anfänger-Themen 4
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
J Java: Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 4
T Input/Output GregorianCalender gibt falsch aus? Java Basics - Anfänger-Themen 4
F Byte Ausgabe plötzlich falsch Java Basics - Anfänger-Themen 0
O Zeitmessung falsch Java Basics - Anfänger-Themen 7
J Klassen Fehler Datei kopieren - was mache ich falsch Java Basics - Anfänger-Themen 19
C Ausgabe vom Array falsch ? Java Basics - Anfänger-Themen 3
S Mengenklammer falsch, Warum? Java Basics - Anfänger-Themen 6
J BlueJ öffnet package falsch Java Basics - Anfänger-Themen 2
C Extrem einfache Aufgabe falsch beantwortet :$ Java Basics - Anfänger-Themen 6
H Punkte werden falsch verbunden Java Basics - Anfänger-Themen 6
F String wird richtig in konsole geschrieben aber falsch an Methode übergeben Java Basics - Anfänger-Themen 8
K Runnable oder Keyadapter läuft falsch Java Basics - Anfänger-Themen 4
U Attributsnamen korrekt oder falsch? Java Basics - Anfänger-Themen 4
B Bewegung falsch Java Basics - Anfänger-Themen 33
M .jar wird falsch generiert? Java Basics - Anfänger-Themen 9
A Methoden repaint() zeichnet JPanel falsch Java Basics - Anfänger-Themen 3
M Classpath Jar nicht ausführbar, Classpath warscheinlich falsch Java Basics - Anfänger-Themen 10
D Warum ist diese Interfacedeklaration falsch? Java Basics - Anfänger-Themen 5
A Textdatei einlesen - erstes Zeichen falsch Java Basics - Anfänger-Themen 20
M Was ist daran falsch ? Java Basics - Anfänger-Themen 5
M ; Fehler. Was ist falsch? Java Basics - Anfänger-Themen 4
K Was ist hier Falsch? Java Basics - Anfänger-Themen 3
B Eclipse zeigt code als falsch an Java Basics - Anfänger-Themen 19
R Ausgabe wird falsch angezeigt! Java Basics - Anfänger-Themen 14
O BufferedImage drehen, falsch positioniert Java Basics - Anfänger-Themen 5
L Erste Schritte Was mach ich falsch? thx Java Basics - Anfänger-Themen 3
M Erste Schritte Nachkommastellen falsch bei Rechnung Java Basics - Anfänger-Themen 3
E Kann mir jemand sagen was hier falsch ist? Java Basics - Anfänger-Themen 6
X cmd stellt falsch/zu weinig dar Java Basics - Anfänger-Themen 4
A Variablen Was mache Ich falsch? Java Basics - Anfänger-Themen 5
K Array fehler... was mach ich falsch? Java Basics - Anfänger-Themen 3
M Erste Schritte Jcreator falsch eingerichtet? Java Basics - Anfänger-Themen 10
W Was ist falsch? Java Basics - Anfänger-Themen 14
P Java rechnet falsch! (ab 6stelligen Zahlen) Java Basics - Anfänger-Themen 14
T Diagrammwerte werden falsch herum angezeigt Java Basics - Anfänger-Themen 6
A was mache ich falsch? Java Basics - Anfänger-Themen 3
1 Integer wird falsch in Datei geschrieben Java Basics - Anfänger-Themen 13
Z css pfad falsch Java Basics - Anfänger-Themen 7
M exception catch falsch? Java Basics - Anfänger-Themen 11
E Comparator sortiert falsch... Java Basics - Anfänger-Themen 2
X Primzahl Ausgabe falsch Java Basics - Anfänger-Themen 10
V Eingabe String wird falsch erkannt Java Basics - Anfänger-Themen 7
U Was ist an diesem Code falsch? Java Basics - Anfänger-Themen 10
StrikeTom Was ist an dieser einfachen funktion falsch? Java Basics - Anfänger-Themen 5
S Pfad für Datei falsch - wie richtig angeben? Java Basics - Anfänger-Themen 7
P Was ist hier falsch? Java Basics - Anfänger-Themen 6
B Warum kommt immer die 0 als Ergebnis? Was habe ich falsch gemacht? Java Basics - Anfänger-Themen 18
S wieso ist mein Code falsch? Java Basics - Anfänger-Themen 2
W Grid Layout wird falsch dargestellt Java Basics - Anfänger-Themen 4
R jLabel.setBackground - falsch angewendet? Java Basics - Anfänger-Themen 2
D Muss ein Applet schreiben was Mittelwerte berechnet nur was mache ich falsch? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen


Oben