Autor Beitrag
CaliTuner1988
Hält's aus hier
Beiträge: 8

Win XP, Win 2k, Linux
Borland Developer Studio 2k6, Borland CBuilder 5, Borland CBuilder 6
BeitragVerfasst: Mo 02.04.07 12:41 
Hallo,

bin gerade dabei ein Adventure Game in Delphi mit DelphiX zu programmieren - was das mit der kollision von konvexen polygonen zu tun hat? Ganz einfach, wenn die Person läuft und es steht ein Tisch o.ä. im weg oder er steht vor einer Wand, muss es eine Kollision geben, bzw. die Person muss stehen bleiben.

die Wände, Tische, und sonstiges kann ich mit einfachen Polygonen hinbekommen - Dreieck, Trapez, Parralelogramm - scheint einfach - die Person allerdings, da habe ich eine Frage zu. da es einen Fußboden gibt, der sich über den ganzen Raum zieht kann ich ja nicht sagen, wenn der Kopf der Person sich mit dem Tisch schneidet soll er stehen bleiben - kann ich dann einfach ein Quadrat/Rechteck über die Füße Projezieren? rein logisch müsste das doch dann funktionieren denke ich, oder sehe ich das falsch?

Danke schonmal für Antworten.

Gruß
CaliTuner1988

Moderiert von user profile iconGausi: Abgetrennt von [url=www.delphi-library.d...?t=71497]hier[/URL].

_________________
Gute Programmierer kommentieren und dokumentieren ihr Programm und dessen Quellcode nicht.
Das Programm war schwer zu implementieren - es soll auch schwer zu verstehen sein


Zuletzt bearbeitet von CaliTuner1988 am Mo 02.04.07 15:00, insgesamt 1-mal bearbeitet
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 02.04.07 13:09 
In deinem Fall kannst du doch einfach ein Quadrat um deine Figur ziehen, bzw reichen doch normalerweise AABB Kollisionen für so ein Spiel völlig aus. Bei deinem Tisch musst du aufpassen, den kannst du nicht als ein Polygon betrachten, da er höchstwahrscheinlich konkav ist.

und wenn der boden eine ebene Fläche ist reicht ein:
ausblenden Delphi-Quelltext
1:
2:
  if player.bottom >= 0 {bzw (die höhe des bildes) - (höhe des fußbodens)} then
  {...}


mfg


Zuletzt bearbeitet von F34r0fTh3D4rk am Mo 02.04.07 16:16, insgesamt 1-mal bearbeitet
CaliTuner1988 Threadstarter
Hält's aus hier
Beiträge: 8

Win XP, Win 2k, Linux
Borland Developer Studio 2k6, Borland CBuilder 5, Borland CBuilder 6
BeitragVerfasst: Mo 02.04.07 14:46 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
schön wäre es gewesen, wenn du ein eigenes topic aufgemacht hättest ;) denn die frage bezieht sich nicht auf die Art der Kollisionserkennung sondern auf die Kollision an sich.


Okay, mein Fehler - dachte allerdings schon, dass sich das hierrauf bezieht, deshalb hatte ich kein neues topic gemacht.

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
In deinem Fall kannst du doch einfach ein Quadrat um deine Figur ziehen, bzw reichen doch normalerweise AABB Kollisionen für so ein Spiel völlig aus. Bei deinem Tisch musst du aufpassen, den kannst du nicht als ein Polygon betrachten, da er höchstwahrscheinlich konkav ist.


Das Problem ist, dass sich die Spielfigur 3Dimensional bewegen kann und die Tische, sowie auch der Rest, auch 3D gerendert sind und die Person soll sich ja auch neben einen Tisch stellen können - wenn ich allerdings ein Quadrat um die komplette Figur ziehe, so kollidiert ja pratkisch auch der Kopf am Tisch, wenn die Figur sich 3dimensional bewegt.

user profile iconF34r0fTh3D4rk hat folgendes geschrieben:
und wenn der boden eine ebene Fläche ist reicht ein:
ausblenden Delphi-Quelltext
1:
2:
  if player.bottom >= 0 {bzw (die höhe des bildes) - (höhe des fußbodens)} then
  {...}


mfg


na ja, da die Figur sich 3dimensional bewegen kann ist der fußboden auch keine ebene fläche, sondern zieht sich in 3d auch über die hälfte des Bildes.

Gruß
CaliTuner1988

_________________
Gute Programmierer kommentieren und dokumentieren ihr Programm und dessen Quellcode nicht.
Das Programm war schwer zu implementieren - es soll auch schwer zu verstehen sein
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 02.04.07 16:17 
das funktioniert doch in 3d exakt genauso, da ist ein quadrat eben ein quader und dein fußboden ist auch nicht viel anders :?