JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=4b47bf9d69b8018645a9d17e2dd565c6Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Positionsproblem mit Meshes

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 01.08.2003, 23:34    Titel: Positionsproblem mit Meshes Antworten mit Zitat

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 Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 02.08.2003, 07:50    Titel: Antworten mit Zitat

Wenn sich das Model ändert, setzt du dann FlowVec zurück?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 02.08.2003, 11:25    Titel: Hmm Antworten mit Zitat

Hallo,

ja, nein aeh JEIN Wink

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 Wink) 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
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 02.08.2003, 18:14    Titel: Hmmm Antworten mit Zitat

Wie kann ich denn einen Positionsvektor eines bestimmten Meshes zurueckgeben.

return m_lpMesh->SetMPos(Vector); funktioniert natuerlich logischerweise nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 03.08.2003, 11:06    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 03.08.2003, 11:40    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 03.08.2003, 12:20    Titel: Nein, nein... Antworten mit Zitat

Da habe ich mich falsch ausgedrueckt. Denke ich? Wink

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum