|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 01.08.2003, 23:34 Titel: Positionsproblem mit Meshes |
|
|
Hallo,
ich hab schon wieder ein Problem, was ich wohl nicht ohne Hilfe hinkriege. ICh hab schon alles erdenkliche probiert, nur nix funktioniert.
Ich habe da dieses aktivierte 3D-Objekt (m_lpCurPicked). Das soll sich bewegen, wenn ich auf eine Stelle der Karte zeige. Funktioniert so eigentlich einwandfrei. Jetzt moechte ich ein anderes Objekt bewegen, mache es also aktiv und dann das Problem. Das Objekt folgt mit der aktivierung auf jeden Schritt dem Alten.
D.h. es verschiebt sich initial von seiner alten Position ungefragt direkt an die des anderen Objekts. Und so geht das dann mit jeder Aktivierung weiter. D.h. es wird immer der alte Vektor uebernommen und nicht nur der des aktiven Objekts. Aber weiß ich wo der Fehler liegt? Nein... Ich find ihn einfach nicht.
Code: |
Hier das Codebeispiel fuer den Wechsel. HitTest mal 1:1 von Christian und MS uebernommen. Danke. Nur der Ordnung halber ;)
if(m_lpCurPicked != NULL)
{
if(terrain->MHitTest(&v, &ViewMatrix, &HitVec))
{
//Mesh bewegen
D3DXVECTOR3 vGoto = HitVec - FlowVec;
FlowVec += vGoto * moveSpeed;
m_lpCurPicked->SetMeshPosition(D3DXVECTOR3(FlowVec.x, -10.0 , FlowVec.z));
}
}
|
Bitte nich aufregen, dass ich damit schon wieder nich klarkomme. Es is die Neugier immer was Neues zu probieren, die mir diese Probleme bereitet |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 02.08.2003, 07:50 Titel: |
|
|
Wenn sich das Model ändert, setzt du dann FlowVec zurück? |
|
Nach oben |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 02.08.2003, 11:25 Titel: Hmm |
|
|
Hallo,
ja, nein aeh JEIN
Daran hatte ichs chon gedacht. Das Problem ist vielmehr, dass ich sowohl den HitVec auf Null setzen muss (weil er ja deswegen dem anderen MEsh hinterherrennt ) und den FlowVec auf die Position des Meshes, oder? Nur an die Position komme ich nicht ran. Damit kann ich also nichts zuruecksetzen, leider.... da FlowVec 0 immer in den Ursprung fuehrt und HitVec immer ans Ziel des letzten Meshes.... |
|
Nach oben |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 02.08.2003, 18:14 Titel: Hmmm |
|
|
Wie kann ich denn einen Positionsvektor eines bestimmten Meshes zurueckgeben.
return m_lpMesh->SetMPos(Vector); funktioniert natuerlich logischerweise nicht. |
|
Nach oben |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 03.08.2003, 11:06 Titel: |
|
|
Hallo,
hat denn keiner eine Ahnung, wie man verschiedene Positionen bei einem Klick auf versch. Modelle wieder zurueckbekommt?? Ich hab jetzt die ganze Nacht nahezu alles ausprobiert. Und bis auf eine seeeehr schlechte Notloesung habe ich nichts gefunden. Es scheint nix zu funktionieren... *seufz* |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 03.08.2003, 11:40 Titel: |
|
|
Du berechnest irgendwas falsch...
Du pickst einen beliebigen Mesh (per Mausklick) und willst dann, dass sich der Mesh beim nächsten Mausklick an die Stelle an die du geklickt hast bewegt?
Ich wüßte nicht, warum das mit den Samples (News) nicht gehen sollte. |
|
Nach oben |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 03.08.2003, 12:20 Titel: Nein, nein... |
|
|
Da habe ich mich falsch ausgedrueckt. Denke ich?
Ich habe zwei Meshes. Eines startet auf Positionsvektor 0,10,0 , ein anderes startet auf Position 0, 10, 3.
Jetzt waehle ich das erste Mesh. und klicke es irgendwo in die Karte. Das Mesh bewegt sich korrekt von 0,0,0 auf Zielklick der Karte. Und so geht das mit diesem Mesh auch ewig weiter. Funktioniert also perfekt.
Jetzt klicke ich auf das Zweite (auswaehlen) und moechte es an eine beliebige Stelle der Karte bewegen. Da genau liegt das Problem. Ich habe die Initialposition des Meshes nur am Anfang (also 0,10,10). Dann verschiebe ich das Teil irgendwo auf die Karte, was einwandfrei funktioniert und waehle wieder das andere Mesh. Dieses aber setzt sich jetzt beim Picking initial auf die Position 0,10,0 (wenn ich vorher alle Vektoren zurueckgesetzt habe), oder auf die Position des vorher gewaehlten Meshes, oder wie bei meiner Notloesung auf die Position die imaginaer den Strahlschnittpunkt Maus-Karte ergibt, WEIL ich ja seine Position nicht mehr kenne *seufz*. Die Methode mit der Strahlverlaengerung ist aber schlecht, weil der Schnittpunkt immer woanders liegt, als das Model (siehe erhoehten y-Wert). Also braeuchte ich die absoluten Positionskoordinaten des Modells, wenn ich es klicke, damit es sich nicht initial verschiebt. Aber wie komme ich an diese Koordinaten? Und das ist mein Problem.
Ich hoffe ich habs besser formuliert jetzt .... |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|