Mausposition auf einem 3D PANEL auslesen/berechnen

Posted By: CHaP

Mausposition auf einem 3D PANEL auslesen/berechnen - 08/02/10 20:07

Hi!

Gibt es eine Möglichkeit die Koordinaten der Mausposition auf einem PANEL auszulesen/berechnen, welches sich nicht 2 Dimensional auf dem VIEW befindet? Das PANEL wird also auf eine Textur gerendert.

Mit on_click ist das Event selbst auszulösen, aber es liefert glaube ich keine aktuelle Position, wo mit der Maus auf dem PANEL geklickt wurde.

Das Ziel ist, das der Spieler auf einem beweglichen Panel in der 3D Welt interagieren kann.

Wenn das mit der Mausposition nicht klappen sollte, werde ich wohl einen anderen Weg gehen. Dummy Objekte zu platzieren. Was allerdings recht komplex ausarten dürfte.

EDIT: --------------
Mir ist gerade dazu eingefallen, dass ich die aktuellen Koordinaten vom VIEW per rel_for_screen konvertieren könnte. Dann mittels c_trace auf das PANEL schießen und den getroffenen Punkt (Vertex) per HIT auslesen und als Grundlage für weitere Berechnungen verwenden.
Jetzt stellt sich aber die Frage. Wie trace ich zum richtigen Zielpunkt?
Posted By: FlorianP

Re: Mausposition auf einem 3D PANEL auslesen/berechnen - 08/03/10 08:25

wieso traced du nicht einfach im on_click Event selbst oder benutzt sowas:
Code:
if (mouse_left)
{
  while (mouse_left) wait(1);
  vec_for_screen(temp, vector(mouse_pos.x, mouse_pos.y, 0));
  VECTOR temp2;
  vec_set(temp2, vector(10000, 0, 0));
  vec_rotate(temp2, camera.pan);
  vec_add(temp2, temp);
  c_trace(temp, temp2, ...);
  if (dein panelobjekt getroffen)
  {
    vec_sub(target, panel_object.x);
    vec_set(temp, panel_object.pan);
    vec_inverse(temp);
    vec_rotate(target, temp);
    //jetzt dürfte target relative 2D Coordinaten auf dem Objekt aka Panel enthalten
    //und du musst nur noch auf die relative Größe skalieren
  }
}


Posted By: CHaP

Re: Mausposition auf einem 3D PANEL auslesen/berechnen - 08/04/10 08:36

Öhm, weil ich mir nicht wirklich im klaren bin, wie ich die dafür relevanten Vektoren herbekomme um richtig tracen zu können. grin

Quote:

vec_set(temp2, vector(10000, 0, 0));


Warum soll der x-Wert gesetzt werden?
Sollte das nicht eher den z-Wert betreffen?
Posted By: CHaP

Re: Mausposition auf einem 3D PANEL auslesen/berechnen - 08/04/10 16:22

Wie es aussieht, habe ich gerade auch einen Weg gefunden. Ich werde ähnlich wie in einem bekannten Shooter von John Carmack, die In-Game Interfaces mit einem Cursor versehen. Dieser befindet sich direkt auf der Oberfläche des PANELS und folgt den Mausbewegungen.
© 2024 lite-C Forums