Closed UmbertoFalkenhagen closed 2 years ago
Push die letzte Version, die Audio-files scheinen zu fehlen
Mir scheint, Du hast neben der Skalierung auch noch die Position und Rotation der Beams in mtxPivot des Meshes gespeichert. Im Code arbeitest Du aber nur mit der Skalierung. Du müsstest schon alle Information hernehmen. Ich empfehle es aber so zu machen, wie ich es erklärt hatte, nämlich nur die Skalierung und die Translation im Mesh zu haben, die Rotation dagegen im Knoten. Dann passt auch dein Code bezüglich der Rücktransformation.
Danke für die schnelle antwort. Jedoch bin ich mir nicht sicher, ob ich sie richtig verstehe. Die Komponente, die die Laser rotieren lässt, gibt es nur einmal pro Laser und liegt auch dementsprechend nur auf dem Knoten...
Die Audiofiles sollten jetzt auch enthalten sein.
Wenn ich in deine JSON schaue, sehe ich Pivots bei den Beams mit Translation und Rotation
Also meine Bemas besitzen eine Mesh Komponente und die Verfügt eben auch über translations, rotations und scalings. Nach meinem Verständnis ist das ja aber notwendig um meine beams zu positionieren, damit am ende dieser kreuzförmige Laser entsteht...
Rotiert wird aber letztlich nur über die Transformkomponente im Knoten
Du kannst ja nochmal in meinem Beispiel schauen. Es geht aber auch anders, dann solltest Du die mtxWorld der Mesh-Komponente zur Kollisionserkennung heranziehen und auf die Knotentransformation verzichten. Dann prüfst Du gegen -0.5 bis +0.5 in beiden Dimensionen
Aber genau das mach ich doch in meinem collision check oder etwa nicht? der collision detector befindet sich auf den beams und zieht (zumindest so wie ich es lese) zur berechnung der collision die meshkomponente des nodes heran auf dem der collision detector liegt...
Du nutzt die inverse Welttransformationsmatrix des Knotens und vergleichst dann gegen ein skaliertes Mesh dessen Position Du zu kennen glaubst. Deine Meshes sind aber auch rotiert und negativ transferiert. Also entweder alle Meshtransformationen identisch machen und die Knotentransformationen für die Rotation nutzen, oder die Welttransformationsmatrix des Meshes nutzen und selbst invertieren.
Sorry for only posting it now but i wasn't able to post it earlier. However, here is the description of my problem: So I have the collision detector component on all of my laser beams. (4 per laser) It is the same collision detection that we created in the lessons so the calculation should be alright but still it doesn't work properly. I tried using 2 different ways of implementing the collisions: The first one was using it in my Main but this leads to the problem that when testing it, the collision only seems to be working on one of each beams per laser (I assume the first one) and once the agent touches this one it puts out an intersecting message of all of the beams or at least it puts out this message 4 times. When I try using it in my collision detectors update method however it permanently puts out messages of the agent intersecting with the lasers even though it obviously doesn't.
I tried several other things but none of them worked so I would be happy if somebody could find the problem. My repo can be found here: https://github.com/UmbertoFalkenhagen/PRIMA-own