Entwickler-Ecke

Multimedia / Grafik - Genesis 3D, Gegner läuft durch Wände


somebody - Di 06.05.08 17:06
Titel: Genesis 3D, Gegner läuft durch Wände
Hallo leute, bei meinem Momentanen SPiel, woran ich gerade arbeite, da habe ich bis jetzt schon ein gegner, dieser maschiert aber ganz gemütlich durch Wände. Ich habe versucht dies zu beheben mit:


Delphi-Quelltext
1:
2:
3:
Result := Boolean(geWorld_Collision (World, @MinVector, @MaxVector,
    @LookVector, @ViewVector, GE_CONTENTS_SOLID_CLIP, GE_COLLIDE_ALL,
    0nilnil, @KontaktInfo));


aber irgendwie läuft der immer noch durch Wände. Weiß jemand, wie ich das beheben kann?


Jakob_Ullmann - Di 06.05.08 17:30

Und wieder ist es exakt der Quelltext aus Game Programming für Kids ODER aus diesem Tutorial... Bist du dir sicher, dass du alles gelesen hast? Das Result ist doch der Rückgabewert einer Funktion (welche auch immer). Diese rufst du auf. Da ich schon lange nicht mehr mit G4D (Genesis 3D for Delphi) programmiert habe, weiß ich nicht mehr, was der Rückgabewert zu sagen hat, aber mein Verständnis sagt mir, dass True bedeutet, dass es eine Kollision gibt. Du musst also auch wirklich irgendwo abfragen, ob es eine Kollision gibt und je nach Rückgabewert handeln. Zeig am Besten dazu noch den Code für's Rendering (achso: Noch ein Grund, weshalb ich nicht mehr mit G4D programmiere: Man kann sich meiner Meinung nach nicht alles merken, man muss so gut wie immer zumindest das Grundgerüst abschreiben und für wirklich große Spiele eignet sich G4D auch nicht, sodass das Grundgerüst fast immer den größten Teil einnehmen wird).

/EDIT: Wenn du etwas für den Gegner testen willst, musst du selbstverständlich auch die Vektoren des Gegners angeben.


somebody - Mi 07.05.08 13:03

Zitat:

Das Result ist doch der Rückgabewert einer Funktion (welche auch immer). Diese rufst du auf. Da ich schon lange nicht mehr mit G4D (Genesis 3D for Delphi) programmiert habe, weiß ich nicht mehr, was der Rückgabewert zu sagen hat, aber mein Verständnis sagt mir, dass True bedeutet, dass es eine Kollision gibt. Du musst also auch wirklich irgendwo abfragen, ob es eine Kollision gibt und je nach Rückgabewert handeln.

Das stimmt, zwar, das true bedeutet, dass es eine Collision gibt. Aber beim anderen uss ich dir wiedersprchen. Die gleiche function hae ich auch bei mir selber(dem SPieler) und dieser kann nicht durch Wäne laufen.

Kann mir da jemand helfen?