Hi,
ich habe ein Problem mit den Kollisionsabfragen im 3D-Modus:
Ich bekomme immer völlig sinnlose Werte (X_COLLISIONRAY) oder an den falschen Stellen ein FALSE oder TRUE (X_COLLISION, X_COLLISIONAABB). Ich arbeite mit animirten und sich bewegenden Quake II-Animationen, die ich dann in *.ddd´s umwandle, hab aber auch schon versucht, dass Problem mit *.3ds-Dateien zu beheben => Funktioniert trotzdem nicht. Da ich jetzt mal davon ausgehe, dass das an mir liegt, könnte mir bitte jemand nen Codeschnipsel einer Objektkollisionsabrage von Körper "0" und Körper"1" tippen. Nur das nötigste.
Wäre nett, weil ohne die Kollisionsabfrage komm ich nicht weiter.
Gruß
Tenorm
Du musst X_MOVEMENT/X_ROTATION aufrufen, um Objekt A and die Stelle zu schieben, wo es später gezeichnet wird.
Dann bei X_COLLISION eine Kugel in _globalen_ Koordinaten angeben.
Wenn's nicht geht, Code zeigen. Kann nur eine Kleinigkeit sein.
Die Kugel bzw. der Quader bwewgt sich immer mit dem Player mit. Aber ich zeig dir mal nen Ausschnitt:
...
X_SCALING 0.025,0.025,0.025
X_MOVEMENT 0-player_x,0-player_y,0-player_z
X_ROTATION player_rot,0,1,0
X_SETTEXTUR 0,-1
X_DRAWANIM 0, 0, 40, anim, TRUE
X_SCALING 0.025,0.025,0.025
X_MOVEMENT 100,0,100
X_ROTATION 90,0,1,0
X_SETTEXTUR 1,-1
X_DRAWANIM 1, 0, 40, anim, TRUE
IF X_COLLISIONAABB(1,anim,0-player_y,5+player_z,0-player_x,6,6)=TRUE THEN c=TRUE
...
player_... = Koordinaten von Spielfigur
anim = Animationsstufe
Noch was: Muss ich bei den Collision*-Befehlen eigendlich das Objekt inner- oder ausserhalb des Quaders/ der Kugel angeben?
Gruß
Ja... Neee...
Du willst doch eine Kugel um den _Player_ mit den _Objekten_ prüfen. Nicht eine Kugel mit dem Player, oder?
Also:
x_movement hindernis_x, hindernis_y, hindernis_z
xif x_collisionaabb(id_player, anim, x_player, y_player, z_player, width, height) ....
OK, die Frage war aber eher nebensächlich, die Kollisionsab frage läuft aber immer noch nicht.
[SCHMOLL] .
Also liegt beim Code kein Fehler???
Hat sowas vielleichtwas mit den Modellen zu tun (also Dateityp), mit was für Dateien arbeitest du???
Die Position von X_COLL... stimmt auch, oder???
Schonmal Debug angemacht, und geschaut ob die Kollisionsbox auch richtig sitzt?
Warum fragt hier mich keiner. ;) Das Kollisionsproblem kann auch an X_SCALING liegen.
In der Hilfe steht:
QuoteSkalierte, inbesondere nicht orthotrope Skalierungen, können Probleme bei X_COLLISION hervorrufen.
Wenn ich zum Beispiel ein Terrain habe und mache X_SCALING 2,2,2 dann fällt der Spieler durch den Boden. Probier's mal aus bei dir.:)
Cheers
Echt!? Oh sch.....
Die Box sitzt richtig.
Wenn das Problem bei Scaling liegt, hab ich aber ein Problem: Ich scaliere meine Welt ums 500-fache, da ich im Editor keine unbegrenzt große Welten erstellen kann. Kann man sowas überbrücken/reparieren/umstellen?
Danke
Gruß
Tenorm
Eher nicht, was benutzt du den für ein Programm?
Also in Blender solltest du es doch scalieren können auf die größe was du brauchst ?
Ich hab zwar Blender auch, verwende aber Milkshape 3D, da kenn ich mich halt gut aus, das Programm an sich ist eigendlich für Player, aber tuts auch super für Welten. Ausserdem zahllose in- und export-Optionen. Was anderes kann man nicht dagegen machen?
Gruß
Tenorm
PS: Vielleicht könnt ihr das Problem ja im nächsten Update beheben, wäre echt ne gigantische Hilfe, da ich sonst ja nie scalieren kann, ohne das die Kollisionsabfrage spinnt.
Danke
Ich glaub Gernot ist schon auf suche, denke das war nicht so geplannt, das beim Sculling die Kollision falsch ist ?! :)
Danke, ich schätze sowas ;)
nur mal so offtopic: wie schauts inzwischen mit boden- bzw. weltkollisionen gegenüber player aus?(wollt keinen extra thread öffnen)
Und wie stet´s mit der Behebung des Problems?
Irgendwelche Fortschritte?
KA muss Gernot ja machen, und atm ist er wohl nicht da :)
Wenn's hier ein Problem gibt, bitte ein kleines Beispiel hochladen, das das Problem verdeutlicht.
Bei keinem einzigen meiner Programme funktioniert die Kollisionskontrolle mit scalierten Modellen. Ich hab jetzt mal ein Modell im Editor scaliert => muss es im Programm nicht mehr machen => funktioniert einwandfrei.
Aber das für die ganze Spielwelt (fast 100 Animationen/Objekte) zu machen, wäre doch etwas zeitraubend. Noch nal zum Beispiel:Das kannst du doch schnell bei irgendeinem 3D-Game (ausser eins mit Newton-Kollisionen) ausprobieren, einfach größe schnell verdoppeln, wer weis, vielleicht funktionierts ja bei dir, bei mir nicht.
Danke