Objekt zwischen Kamera und Player

    • GM 8

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

    • Objekt zwischen Kamera und Player

      Hi! ich habe diese frage eigentlich schon bei Technische Fragen reingemacht aber da antwortet keiner, desweden stelle ich sie hier:
      Ich mach grad ein 3DJumpnRun mit Blöcken wo man drauf springen muss.
      Manchmal habe ich aber ein Problem:
      Wenn ein Block vor der Kamera (zwischen Player und Kamera) ist dann sieht man seinen Player nicht mehr und weiß nicht wo man hinlaufen soll.
      Ich wollte, wenn der Block zwischen der Kamera und dem Player ist den Block ein bisschen durchsichtig machen, ich weiß zwar wie ich den Block durchsichtig mache aber nicht wie ich herausfinde das der Block vor der Kamera ist.
      Kann mir jemand helfen???
      Wär echt nett:D
    • Ja also man sieht den player immer von hinten und wenn man ihn dreht, dreht sich die Kamera immer mit ihm und man läuft in die Richtung der Kamera.
      Also würd ich lieber wissen wie man die Blöcke durchsichtig macht wenn sie vor der Kamera sind.
    • ich hatte das Problem auch schon mal gehabt. Allerdings nur in 2D, wo man einfach "collision_line" nehmen kann.
      In 3D musst du diese Prüfung manuell machen und das ist schon in 2D nicht einfach.
      Du musst einen Trace-Strahl von der Kamera zu Spieler schicken und prüfen, ob er am Spieler ankommt, oder bereits vorher auf ein Objekt trifft.
      Das Problem dabei ist die Beschreibung der Flächen, welche als Kollisionsobjekte für den Strahl gelten.

      Einfacher wäre es, wenn du die Z-Richtung ignorierst. Dann werden zwar auch alle Objekte über und unter dem Spieler transparent, aber wenn der Boden und die Decke dabei generell ignoriert werden, macht das kaum einen Unterschied.
    • Ja das mit "collision_line" ist gut aber ich hab doch eine bessere Idee herausgefunden(glaube ich).
      Es ist nur etwas kompliziert:
      Ich habe ein Objekt obj_Schau gemacht:

      GML-Quellcode

      1. //step event
      2. x = obj_Typ.x;
      3. y = obj_Typ.y;
      4. image_angle = obj_Typ.direction;
      5. image_xscale = -obj_Kamera.nah;

      Und dann habe ich beim Block eingestellt:

      GML-Quellcode

      1. //collision with obj_Schau
      2. if z < distance_to_object(obj_Typ) *(obj_Kamera.z-32) /obj_Kamera.nah +obj_Typ.z+128
      3. and height > distance_to_object(obj_Typ) *(obj_Kamera.z-32) /obj_Kamera.nah +obj_Typ.z
      4. {alpha=0.3}

      Und jetz sieht man den Typ immer!
      Danke für eure Antworten!!! War mir echt ne große Hilfe
    • Benutzer online 1

      1 Besucher

    • Tags