3D Objekt selektieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 3D Objekt selektieren

    Hallo miteinander

    Ich habe eine kleine 3D Welt, wobei ich folgendes nicht weiss zu realisieren:

    1.
    Um den Spieler zu bewegen, kann man mit der Maus auf den Boden klicken, wobei der Spieler an diese Stelle läuft. Nun weiss ich nicht, wie ich die X und Y koordinaten rauskrieg. Kann man dies mit der Kameraeinstellungen errechnen? oder gibt es eine vordifinierte FUnktion?

    2.
    Der Spieler kann verschiedene Objekte per Maus anklicken, welche dann aktiviert werden. Nun muss ich wissen, welches Objekt der Spieler angeklickt hat. Wie ermittle ich so etwas?

    Danke im voraus :)

    Liebe Grüsse Sandro
  • Hi MigBig.

    Zu:
    1. name_deines_spielers.x ist die X Koordinate und name_deines_spielers.y ist die Y Koordinate deines Spielers
    und die der Maus ist mouse_x und mouse_y.

    2. Um zu überprüfen ob der Spieler ein anderes Objekt berührt benutz das Collisions Event und setzte dann z.B. im obj_soll_aktiviert_werden eine Variable auf 1.
    Fertiger Code für das Objekt, welches aktiviert werden soll:

    mfg xxskxx
    -

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von xxskxx ()

  • xxskxx schrieb:

    Hi MigBig.

    Zu:
    1. name_deines_spielers.x ist die X Koordinate und name_deines_spielers.y ist die Y Koordinate deines Spielers
    und die der Maus ist mouse_x und mouse_y.

    2. Um zu überprüfen ob der Spieler ein anderes Objekt berührt benutz das Collisions Event und setzte dann z.B. im obj_soll_aktiviert_werden eine Variable auf 1.
    Fertiger Code für das Objekt, welches aktiviert werden soll:

    mfg xxskxx

    Ob das wohl funktionieren wird, ich glaube nicht. :thumbdown:

    Ich sag es besser gleich: wenn du den Algorithmus nicht selbst bauen kannst wirst du die ganze Zeit schwierigkeiten mit 3D Haben. Aber falls du nur Anhaltspunkte suchst bzw. deine Scripte optimieren und nicht einfach irgendwas kopierbares willst können wir dir sicher helfen.

    also zu 1. Du könntest anhand der Kameraposition(und dem Winkel) einen Strahl(genauer gesagt ein 3D Vektor wie kahm ich denn auf Vertex ._.) aussenden der anhand der 2D Koordinaten die geklickt wurden in einem bestimmten Winkel aus der Kameraperspektive ausfällt, dann berechnest du die 3D Koordinaten anhand der Kollision mit dem Boden usw. für viele Leute hochkompliziert vorallem wenn man sich nicht für Mathematik interessiert.

    bei 2. du überprüfst ob der strahl von 1. innerhalb des 360° winkels von einem der Dreiecke(vom Model) des zu klickendem Gegenstand liegt... das währe die genauste Prüfung, andernfalls überprüfst du einfach ob der Strahl in einem bestimmten Umkreis des Objekts den Boden Trifft.

    MfG Genesis

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Genesis ()

  • MigBig schrieb:

    Okey..

    Gibt es hier etwas vorgefertigtes? Oder muss ich diese Funktion selbst erstellen?

    Schaffbar ist es, aber sehr komplex :)

    Desshalb würde ich mich freuen :rolleyes:


    Für den GM habe ich jetzt nichts gefunden, aber eine Menge für C++ und OpenGL
    Jedenfalls gibt es keinen(mir bekannten) Game Maker code Ansatz für solche Sachen,

    was mir gerade noch einfällt evtl. hat TGG dazu was: gamesguy.bravehost.com/index.html
  • Okey.. ich habe eine Lösung auf der GMC gefunden

    Sie ist unter 3D Examples auf der ersten Seite zu finden :)

    Geniale Idee.. ;)

    Es werden 2 Views gezeichnet.. im einten die Welt, wie sie sein sollte und in der anderen eine, bei welcher die zu selectierenden Objekte mit eindeutigen Farben gezeichnet werden und mit getcolor ausgelesen und identiviziert werden könnnen :D

    Gescheide Sache