Kollision soll nur an oberer Seite (Breite) möglich sein

L0g4n

Mitglied
Hallo Leute,

folgendes Problem:
Ich habe zwei Figuren. Beide haben um sie herum eine rechteckige Bounding Box.
Nun möchte ich beide auf Kollision prüfen.

Bisher habe ich ganz klassisch die Methode "overlaps", also simples überschneiden benutzt.
Jedoch möchte ich die Kollision noch besser dem Spiel anpassen. Da man sich eh nur nach rechts und links bewegen kann und die "Figur" von oben herabfällt, muss man diese auffangen.
Und jetzt soll die Kollision quasi nur zählen, wenn die herabfallende Figur die "Breite" der Spielfigur trifft.
Das Ganze jetzt umzusetzen müsste eigentlich relativ einfach sein, jedoch stehe ich gerade auf dem Schlauch.

Ich benutze als Game-Framwork libGDX, die Rectangle Klasse, die ich benutze, kann man hier nachlesen:
Rectangle (libgdx API)

Ich benutze dabei OpenGL, das Koordinatensystem (hier im 2D Raum) beginnt (wie in der Schule) in der unteren linken Bildschirmecke.

Danke im Voraus!

LG
 

Androbin

Bekanntes Mitglied
Dann frag doch mal mit overlaps() den oberen Teil der Figur ab!
Allerdings kenne ich die overlaps()-Methode noch nicht! Erklärung bitte!
 

L0g4n

Mitglied
Ich habe die Dokumentation zum Framework doch verlinkt, hier nochmal der Link (du musst einfach die Methode overlaps da suchen und drauf klicken)
Rectangle (libgdx API))

Beachte, dass nicht die Standard Java API.

Die Overlaps Methode erwartet nur ein anderes Rechteck als Parameter, da kann man nichts spezifizieren ...
 
Zuletzt bearbeitet:

Androbin

Bekanntes Mitglied
Du schreibst das dann ungefähr so:
Java:
if ( Rectangle1.overlaps( new Rectangle( Rectangle2.x, Rectangle2.y, Rectangle2.width, 1 ) ) ) { ... }
Du erstellst also temporär ein neues Rectangle basierend auf dem alten, aber mit anderer Höhe, also so wie das alte, jedoch bloß eine 1 Pixel dünne Version genau auf dem alten!
 
Zuletzt bearbeitet:

Ruzmanz

Top Contributor
Sobald die Rechtecke überlappen, befindet sich der Spieler 1 Pixel im Boden. Okey ... dann positioniert man das Rechteck 1 Pixel über den Boden. Bewegt sich der Spieler zu schnell nach unten, ergibt sich wieder das selbe Problem ...

// Neue Position des Spielers berechnen
// Kollision erkennen:
if(spieler.x >= block.x && spieler.x+spieler.width <= block.x+block.width && spieler.y <= block.y+block.height) {
// Position korrigieren, damit der Spieler nicht 1-X Pixel im Boden läuft.
spieler.x = block.y+block.height+1;
}

Probleme:
- Wenn du das in Blöcken aufbaust, funktioniert die Logik nicht. Denn wenn der Spieler auf zwei Blöcken steht, dann fällt er einfach durch.
- Läuft / Fällt der Spieler seitlich in den Boden, wird er nach oben teleportiert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Kollision Spiele- und Multimedia-Programmierung 5
A Kollision funktioniert nicht richtig bei zu schneller Geschwindigkeit des Spielers Spiele- und Multimedia-Programmierung 0
N Kollision von zwei ImageIcons Spiele- und Multimedia-Programmierung 8
D Kollision funktioniert unten aber nicht oben Spiele- und Multimedia-Programmierung 4
J Kollision (libgdx) Spiele- und Multimedia-Programmierung 2
S Kollision Spiele- und Multimedia-Programmierung 2
J Kollision genau erkennen mit intersects Spiele- und Multimedia-Programmierung 27
K a* kollision der einheiten Spiele- und Multimedia-Programmierung 3
S Probleme bei Breakout - Brick kollision Spiele- und Multimedia-Programmierung 2
F Rechteck Kollision Spiele- und Multimedia-Programmierung 10
H 2- D Kollision Spiele- und Multimedia-Programmierung 14
C Zeldaklon Problem mit Wand-Kollision Spiele- und Multimedia-Programmierung 8
O Kollision Polygon und Rechteck Spiele- und Multimedia-Programmierung 2
S Pacman Kollision von Münzen und Mauern Spiele- und Multimedia-Programmierung 11
P Gridpane Kollision Spiele- und Multimedia-Programmierung 3
Androbin Kollision zwischen Raster und Nicht-Raster Spiele- und Multimedia-Programmierung 2
Hercules Kisten Kollision Spiele- und Multimedia-Programmierung 2
S 3D-Kollision mit zwei ArrayLists Spiele- und Multimedia-Programmierung 7
T Pixelgenaue Kollision Spiele- und Multimedia-Programmierung 5
A LWJGL 3D Objekte Kollision Spiele- und Multimedia-Programmierung 3
S Kollision tile-based 2D Plattformer Spiele- und Multimedia-Programmierung 2
D Greenfoot Kollision Spiele- und Multimedia-Programmierung 5
D Kollision verhindern Spiele- und Multimedia-Programmierung 2
R Frage zur Kollision Spiele- und Multimedia-Programmierung 5
Maxim6394 [Java3D] Probleme bei Kollision Spiele- und Multimedia-Programmierung 7
Kr0e Kollision zweier Kugeln... Wo ist Newton ?? Spiele- und Multimedia-Programmierung 9
C Kollision zwischen 2 Kreisen Spiele- und Multimedia-Programmierung 3
Helgon Kollision von jeder Seite des Blocks Spiele- und Multimedia-Programmierung 3
Fab1 Kollision die 100ste Spiele- und Multimedia-Programmierung 5
D Jump'n'run Kollision bei Blöcken Spiele- und Multimedia-Programmierung 10
P PingPong Spiel - Kollision Spiele- und Multimedia-Programmierung 2
C Bitmaske und Kollision Spiele- und Multimedia-Programmierung 2
J Spielprogrammierung mit bewegung und kollision Spiele- und Multimedia-Programmierung 24
S Kollision Kreis Rechteck Spiele- und Multimedia-Programmierung 8
aze Java3D: Gegenstände aufeinander zubewegen ohne Kollision Spiele- und Multimedia-Programmierung 4
baddestpoet pixelgenaue Kollision Spiele- und Multimedia-Programmierung 4
S Kollision in 2D Spiele- und Multimedia-Programmierung 12
B Gedrehte Rechtecke Kollision Spiele- und Multimedia-Programmierung 4
J Kollision mit Block (Wand) Spiele- und Multimedia-Programmierung 11
C Kollision in Java3D Spiele- und Multimedia-Programmierung 4
J Kollision von Objekten Spiele- und Multimedia-Programmierung 7
M Asteroids Clone: Kollision zwischen Schuss und Feind Spiele- und Multimedia-Programmierung 13
F Bewegung/Kollision von Objekten auf Tastendruck Spiele- und Multimedia-Programmierung 6
Z Kollision Spiele- und Multimedia-Programmierung 3
F Kollision für Arkanoid Spiele- und Multimedia-Programmierung 2
N Kollision abfragen Spiele- und Multimedia-Programmierung 3
K Sprites / Kollision Spiele- und Multimedia-Programmierung 3
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13
N Animation funktioniert icht wie sie soll Spiele- und Multimedia-Programmierung 10
N Warum tut der Gegner nicht das was er soll? Spiele- und Multimedia-Programmierung 13
E Brauche Hilfe was soll ich tun Spiele- und Multimedia-Programmierung 7
T Welche OpenGL-Version soll ich verwenden? Spiele- und Multimedia-Programmierung 2
S Button soll verschiedene panel zufällig durchschalten Spiele- und Multimedia-Programmierung 14
R RPG soll MMORPG werden Spiele- und Multimedia-Programmierung 2
F RPG - Spielfigur soll sich nicht frei bewegen können. Anregugen wären gerne gesehen^^ Spiele- und Multimedia-Programmierung 13
Kr0e "gluSphere" (JOGL) soll Schatten werfen können Spiele- und Multimedia-Programmierung 5
L Figur soll sich selbständig Bewegen Spiele- und Multimedia-Programmierung 12
M Soll ich besser glTranslatef() oder gluLookAt() benutzen? Spiele- und Multimedia-Programmierung 6

Ähnliche Java Themen


Oben