Aktuelle Zeit: 11.05.2025, 19:56

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Kollision
BeitragVerfasst: 20.09.2007, 19:54 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
Was mir nun noch fehlt ist die Kollision.
Hab dazu einiges gelesen jedoch so ganz durchsteigen tu ich da nicht!
Also ich hab bis jetzt en int array wo alle Rechtecke drinn sind(140).
der wert hat entwerder 0 und 1.(0 für gibts nicht mehr und 1 für aktiviert).
Ich durchlaufe dieses arrays und zeichen die rechtecke auf das spielfeld!
So mein sprite kann ja nun mit bomben diese Steine(Rechtecke) mit ner Bombe wegsprengen, dann wird der wert im array auf null gesetz(je welchen stein es erwischt).
So wie mach ich das nun das dass sprite nicht durch die Steine laufen kann etc.?(also die kollisions abfrage?)

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kollision
BeitragVerfasst: 20.09.2007, 21:00 
Offline
Moderator
Benutzeravatar

Registriert: 11.03.2007, 20:25
Beiträge: 556
Wohnort: Frankfurt/Main
in die klasse noch ein rechteck einbauen, was genausogroß ist wie das sprite. dann immer die rechtecke gegeneinander testen (riesen schleife..) funktion isRectCollided(otherRect)..

_________________
yo. life's so bloody short.
Ihr dachtet Schulfernsehn sei die ultimative Folter? Falsch: Fahrstuhlmusik, extra leise.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kollision
BeitragVerfasst: 21.09.2007, 19:38 
Offline

Registriert: 16.05.2007, 21:00
Beiträge: 166
Hi,
So ganz versteh ich das jetzt nicht!
Also wie mach ich die kollision?
Gibt es dazu en Tutorial?(Hab schon in google geschaut aber nichts brauchbares gefunden)
Sry wenn die fragen dumm sind aber ich versteh das nicht^^

MFG ReduX


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kollision
BeitragVerfasst: 21.09.2007, 21:23 
Offline
Moderator

Registriert: 25.02.2007, 14:35
Beiträge: 323
Wohnort: Münster
Also, jedes Objekt wird noch mit einer zweidimensionalen Bounding-Box versehen. und dann prüfst du einfach immer, ob sich zwei Rechtecke überlappen ;)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kollision
BeitragVerfasst: 05.12.2007, 00:18 
Offline
Benutzeravatar

Registriert: 04.12.2007, 16:06
Beiträge: 7
Die kollision kannst du dir so vorstellen: Du hast zwei geometrische Formen (zum Beispiel Rechtecke im 2D Raum oder eben Quader im 3D Raum) und überprüfst nun, ob ein Punkt der einen Form innerhalb der anderen Form liegt..

Code:
xxxxxxxxxxxxxxxxxx
x................x
x................x
x............xxxxxxxxxxxx
x............x...x......x
xxxxxxxxxxxxxxxxxx......x
.............x..........x
.............x..........x
.............x..........x
.............xxxxxxxxxxxx


zum beispiel so... hier findet eine Kollision statt...

Im Code wird es jetzt so gelöst:

Wenn du dein Sprite bewegst überprüfst du, ob es nach der Bewegung mit irgendetwas kollidiert. Ist dies der Fall machst du die Bewegung im selben Frame noch rückgängig (bzw überprüfst es vorher mithilfe von temporären Koordinaten und lässt die Bewegung nur stattfinden falls keine Kollision stattfindet).


Oder noch ein Lösungsweg:

Sagen wir du bewegst dein Sprite um 50 Pixel nach rechts... nach 30 Pixeln kommt aber ein Rechteck und deine Kollisionsabfrage sagt dir "hey du, hier gehts nicht weiter"... jetzt verschiebst du in diesem Frame dein Sprite in einer while-Schleife solange nach links bis keine Kollision mehr stattfindet... so hält dein Sprite genau am Rechteck an :)


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de