Collision an einer bestimmten Seite eine Rectangles abfragen

TheSorm

Bekanntes Mitglied
Ich arbeite an einem kleinen Spiel mit Lvl Editor.

Java:
for(int i = 0; i < Frame.teilesArray.size();i++){
			if(Frame.teilesArray.get(i).getimgInt()== 0 || Frame.teilesArray.get(i).getimgInt()== 1){
				if(bounding.intersects(Frame.teilesArray.get(i).getBounding())){
				    Rectangle intersection = (Rectangle) bounding.createIntersection(Frame.teilesArray.get(i).getBounding());
				
				}
			}
				
		}

Also jedes Teil der Map das in teilesArray gespeichert ist, ist ein Objekt. dieser Code steht in der Update Methode des Players, ich möchte jetzt das der Player nict durch die Map objekte gehen kann. Leider bekomm ich das nicht hin und brauch Hilfe!
 

eMmiE

Bekanntes Mitglied
2 Möglichkeiten:

-Vorausberechnung: Du schaust, ob der Punkt, wo der Player nach der Geschwindigkeit und der Richtung als Nächstes landen würde in einem Map-Objekt enthalten ist. Nur wenn die Abfrage false ist bewegen.

-Korrektur: Wenn dein Spieler nach der Bewegung in einem Map-Objekt drinsteht, wird er wieder rückversetzt
 

Hestalon

Mitglied
Sieht doch ganz danach aus, dass du die Kollision schon drin hast, allerdings nur zurückgibts ob es überhaupt eine gab.
Gib daher doch z.B. einen Int zurück für die 4 Seiten oder Objekt mit 4 Booleans für die Seiten, und anhand dessen machst die 2 Möglichkeiten von eMmiE.
 

TheSorm

Bekanntes Mitglied
Das ist mein ansatz bis jetzt der nicht funktionirt:

Java:
	public void update() {
		for(int i = 0; i < Frame.teilesArray.size();i++){ //teilesArray is a Array with all tiles from the map (every block has 64x64 px)
			if(Frame.teilesArray.get(i).getimgInt()== 0 || Frame.teilesArray.get(i).getimgInt()== 1){ // means that only the two special blocks will check of collision not all blocks only this blocks
				if(bounding.intersects(Frame.teilesArray.get(i).getBounding())){ // bounding is the rectangle of the Player and Frame.teilesArray.get(i).getBounding() is the rectangle of one block in the Array list
				    Rectangle intersection = (Rectangle) bounding.createIntersection(Frame.teilesArray.get(i).getBounding());  // made a new rectangle out off the intersection
				 // adding variables for the object the player can collide with
				    double minX = Frame.teilesArray.get(i).getBounding().getMinX();
				    double maxX = Frame.teilesArray.get(i).getBounding().getMaxX();
				    double minY = Frame.teilesArray.get(i).getBounding().getMinY();
				    double maxY = Frame.teilesArray.get(i).getBounding().getMaxY();

				    if (bounding.getMinY() < maxY && bounding.getMaxY() > minY ) {
				        // collision is vertical
				        if (bounding.getMaxY() > minY) {
				        	System.out.println("Player auf Block: Block:       MinX="+minX+", MaxX="+maxX+", MinY="+minY+", MaxY="+maxY+" | Playerrec: MinX="+bounding.getMinX()+", MaxX="+bounding.getMaxX()+", MinY="+bounding.getMinY()+", MaxY="+bounding.getMaxY()+" | Player: Ply_y="+ply_y +", Ply_x="+ply_x+" | Intersection Höhe="+intersection.getHeight());
				            // bottom of player has passed the top border of collision object, move up
				            ply_y -= intersection.getHeight();
				        } else {
				        	System.out.println("Player unter Block: Block:     MinX="+minX+", MaxX="+maxX+", MinY="+minY+", MaxY="+maxY+" | Playerrec: MinX="+bounding.getMinX()+", MaxX="+bounding.getMaxX()+", MinY="+bounding.getMinY()+", MaxY="+bounding.getMaxY()+" | Player: Ply_y="+ply_y +", Ply_x="+ply_x+" | Intersection Höhe="+intersection.getHeight());
				            // opposite case, move down
				            ply_y += intersection.getHeight();
				        }
				    }

				    if (bounding.getMinX() < maxX && bounding.getMaxX() > minX) {
				        // collision is horizontal
				        if (bounding.getMaxX() > minX) {
				        	System.out.println("Player Links von Block: Block: MinX="+minX+", MaxX="+maxX+", MinY="+minY+", MaxY="+maxY+" | Playerrec: MinX="+bounding.getMinX()+", MaxX="+bounding.getMaxX()+", MinY="+bounding.getMinY()+", MaxY="+bounding.getMaxY()+" | Player: Ply_y="+ply_y +", Ply_x="+ply_x+" | Intersection Breite="+intersection.getWidth());
				            // right border of player has passed the left border of collision object, move left
				            ply_x -= intersection.getWidth();
				        } else {
				        	System.out.println("Player Rechts von Block: Block: MinX="+minX+", MaxX="+maxX+", MinY="+minY+", MaxY="+maxY+" | Playerrec: MinX="+bounding.getMinX()+", MaxX="+bounding.getMaxX()+", MinY="+bounding.getMinY()+", MaxY="+bounding.getMaxY()+" | Player: Ply_y="+ply_y +", Ply_x="+ply_x+" | Intersection Breite="+intersection.getWidth());
				            // opposite case, move right
				            ply_x += intersection.getWidth();
				        }
				    }
				
				}
			}
				
		}

Und das ist die ganze player classe:
[Java] Game 2d jump and run - Pastebin.com
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Collision Detection in einem 2D Sandbox Game. Spiele- und Multimedia-Programmierung 2
T PacMan - Collision Spiele- und Multimedia-Programmierung 2
D Physik Engine und Collision Spiele- und Multimedia-Programmierung 5
Bananabert Collision Grid Spiele- und Multimedia-Programmierung 10
T LWJGL 3D Objekt Collision: Wie? Spiele- und Multimedia-Programmierung 11
S Collision Detection bei Tile Map Spiele- und Multimedia-Programmierung 17
W Collision Detection/Prevention bei Drag & Drop Spiele- und Multimedia-Programmierung 23
M pixel perfect collision detection bei rotierenden Bildern Spiele- und Multimedia-Programmierung 13
E Bounding Box Collision/intersection aber wie? Spiele- und Multimedia-Programmierung 10
T Collision mit Bildern Spiele- und Multimedia-Programmierung 3
D Collision Spiele- und Multimedia-Programmierung 3
D collision mit images und pixelgrabber Spiele- und Multimedia-Programmierung 12
YangLee Ausgabe von einer Bewegung bei mehrzeiligen Strings Spiele- und Multimedia-Programmierung 1
E relevanter bereich einer isometrischen karte zeichnen (AffineTransform) Spiele- und Multimedia-Programmierung 0
M Audio Track einer Musik CD abspielen mittels vlcj-Bibliothek Spiele- und Multimedia-Programmierung 0
Meeresgott LWJGL 3 Problem mit einer Texture Spiele- und Multimedia-Programmierung 4
D Programmierung einer Tor-Anzeige Spiele- und Multimedia-Programmierung 8
C Optimale Wegberechnung einer KI Spiele- und Multimedia-Programmierung 6
T Pong Hilfe bei einer Website Spiele- und Multimedia-Programmierung 4
R Einfärben von Gemeinden auf einer Karte Spiele- und Multimedia-Programmierung 14
S ECS: "deep copy" einer Entity-Vorlage Spiele- und Multimedia-Programmierung 9
R Aufruf einer render-Methode Spiele- und Multimedia-Programmierung 12
E A-Stern Algorithmus Problem und Implementierung einer Map Spiele- und Multimedia-Programmierung 6
J Frage zum Einlesen einer .wav in ein byte Array Spiele- und Multimedia-Programmierung 3
J Spielfiguren laufen lassen auf einer html Tabelle mit Hilfe von Servlets Spiele- und Multimedia-Programmierung 2
T Alle Referenzen zu einer Klasse aus Java Bytecode ersetzt, JVM sucht trotzdem diese Klasse Spiele- und Multimedia-Programmierung 1
M Kamera "am Rande einer Kugel bewegen" Spiele- und Multimedia-Programmierung 4
B Den KeyListener in einer JavaFXML Application benutzen Spiele- und Multimedia-Programmierung 2
gamebreiti Index eines Elements einer ArrayList abfragen Spiele- und Multimedia-Programmierung 1
F Das sag mir einer Java ist plattform unabhänig ! Spiele- und Multimedia-Programmierung 10
M Scrolling einer 2D Map Spiele- und Multimedia-Programmierung 8
J In einer While-Schleife auf Event warten Spiele- und Multimedia-Programmierung 3
windl Frage zu Airplay und zur Mitarbeit bei einer Mediaanlage Spiele- und Multimedia-Programmierung 0
A Aufbau einer JOGL Anwendung Spiele- und Multimedia-Programmierung 12
L Werte aus einer .yml Datei lesen Spiele- und Multimedia-Programmierung 9
H Java3D - Textur aufs innere einer Sphere mappen Spiele- und Multimedia-Programmierung 9
F Download und Update einer Java-Anwendung Spiele- und Multimedia-Programmierung 10
D Problem beim bewegen einer Figur Spiele- und Multimedia-Programmierung 2
B Video von einer IP kamera Spiele- und Multimedia-Programmierung 5
W Java3D: Eckkoordinaten einer Box herausfinden Spiele- und Multimedia-Programmierung 18
W Rotation aller Objekte einer 3D-Szene Spiele- und Multimedia-Programmierung 8
2 Ein Zufallsweg bzw. Weg in einer 2dim Matrix finden. Spiele- und Multimedia-Programmierung 21
aze Schnittmenge zwischen Linie und einer Area wegschneiden Spiele- und Multimedia-Programmierung 3
A Bild einer Webcam auffangen Spiele- und Multimedia-Programmierung 20
G Ballerkennung aus einer Bilddatei Spiele- und Multimedia-Programmierung 24
B Generierung einer Wertetabelle aus einem Bild Spiele- und Multimedia-Programmierung 3
D Problem beim Öffnen einer PHP für eine Highscore Spiele- und Multimedia-Programmierung 5
M Realisierung einer Sichtweise in Java2D Spiele- und Multimedia-Programmierung 3
B String zu Objekt einer eigenen Klasse casten Spiele- und Multimedia-Programmierung 13
H Screenshot einer Graphics2D Anwendung erstellen Spiele- und Multimedia-Programmierung 6
F Simulation einer Magnetischen Flasche Spiele- und Multimedia-Programmierung 17
F Meine Aufgabe: Client-Server am Beispiel einer Implementation eines Tic-Tac-Toe Netzwerkspieles Spiele- und Multimedia-Programmierung 7
J Fehlverhalten einer Spielfigur Spiele- und Multimedia-Programmierung 7
N Jogl Probleme mit dem Buffer beim laden einer Textur Spiele- und Multimedia-Programmierung 2
M Das Frequenzspektrum einer WAV/MP3-Datei anzeigen Spiele- und Multimedia-Programmierung 6
M Rechteck erkennung innerhalb einer Matix Spiele- und Multimedia-Programmierung 4
S Problem beim laden eines Bildes in einer Methode Spiele- und Multimedia-Programmierung 14
E Pinball Abprall an einer schrägen Bande Spiele- und Multimedia-Programmierung 19
0x7F800000 weiß einer wozu ANTLR beim build von JOGL verwendet wird? Spiele- und Multimedia-Programmierung 3
E Hilfe bei einer GUI Programmierung mit Graph Spiele- und Multimedia-Programmierung 30
A Tutorial für die Entwicklung einer Fussball-KI gesucht Spiele- und Multimedia-Programmierung 7
S Rotation relativ zur Rotation einer anderen Transform Group Spiele- und Multimedia-Programmierung 3
A Screenshots von einer Scene erstellen Spiele- und Multimedia-Programmierung 5
G Land aus einer Weltkarte selektieren Spiele- und Multimedia-Programmierung 10
D Kräftesimulation auf einer 2D-Oberfläche Spiele- und Multimedia-Programmierung 5
T Geschwindigkeit einer Animation aendern Spiele- und Multimedia-Programmierung 6
G Ermitteln eines Punktes in einer anderen TransformGroup Spiele- und Multimedia-Programmierung 2
N Background in Java3D ähnlich einer Skybox erzeugen Spiele- und Multimedia-Programmierung 5
H zB Punkte darstellen und mit einer Linier verbinden Spiele- und Multimedia-Programmierung 5
F Darstellung einer tierischen Zelle Spiele- und Multimedia-Programmierung 3
S Text an einer Seite eines Cubes Spiele- und Multimedia-Programmierung 7
F Das SPiel ruckelt nach einer Zeit Spiele- und Multimedia-Programmierung 19
D wieder einer von anfang an. Spiele- und Multimedia-Programmierung 4
M Darstellung einer schwingenden Membran? Spiele- und Multimedia-Programmierung 23
raptorrs Teile einer CAD-Assembly Gruppe in JAVA animieren? Spiele- und Multimedia-Programmierung 3
K Beschriftung von Punkten in einer "Punktwolke" Spiele- und Multimedia-Programmierung 2
S Zur Laufzeit auf die Methode einer anderen Klasse zugreifen Spiele- und Multimedia-Programmierung 5
K Klick in der nähe einer Strecke Spiele- und Multimedia-Programmierung 14
A Minecraft Plugin, welches nur bestimmten Block zum bebauen festlegt Spiele- und Multimedia-Programmierung 26
C JAVA3D Rotation um einen bestimmten Punkt Spiele- und Multimedia-Programmierung 20
DEvent [2D] Farbe bestimmten Pixels eines Bildes ändern Spiele- und Multimedia-Programmierung 3
F Image eines bestimmten Bereichs eines JPanels erstellen Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben