Vektor berechnen | Map begrenzen

Dieses Thema im Forum "Programmierung" wurde erstellt von mkkagain, 29. April 2014.

  1. mkkagain
    Offline

    mkkagain

    Registriert seit:
    30. Juli 2013
    Beiträge:
    0
    Hallo,

    ihr kennt doch sicher EnderGames auf dem Gomme Server? Wenn man dort gegen das Mapende läuft, wird man sanft wieder in die Arena geschleudert.

    Ich habe nun eine Frage. Wie mache ich das genau so. Also wie kann ich einen Vektor berechnen der foglendes macht:

    Ich habe die Location von der Mitte der Map und möchte einen Vektor in diese Richtung der genau 7 Blöcke weit schleudert.

    Wie berechne ich den?

    lg
     
    #1
  2. mkkagain
    Offline

    mkkagain

    Registriert seit:
    30. Juli 2013
    Beiträge:
    0
    # push. Muss doch jmd wissen :(
     
    #2
  3. delta242
    Offline

    delta242

    Registriert seit:
    28. Mai 2012
    Beiträge:
    90
    Hey, ich glaube das können wir dir selbst am besten erklären :)

    Also, du brauchst erstmal 2 Locations, die des Spielers und die der Map-Mitte. Nun musst du einen Vektor erstellen, der genau vom Spieler zur Map-Mitte zeigt. Hierbei gilt: "Spitze minus Fuß" - Bedeutet: Du ziehst von den X,Y,Z-Koordinaten des Spawns die X,Y,Z-Koordinaten des Spielers ab und erstellst damit einen Vektor ( einfach mit new Vector(x, y, z) ). Nun hast du einen Vektor, der ca. die Länge deines Map-Radius hat, den du nun mithilfe der Methode #normalize() auf einen Betrag ( d.h. die Länge ) von 1 verkürzen kannst.
    Mit diesem Vektor kannst du nun rumprobieren. Z.B. kannst du die Y-Koordinate erst auf 0 setzen und dann auf einen von dir gewählten Wert. Dann kannst du mit #multiply(double) den Vektor wieder verlängern/verkürzen und somit die Weite einstellen, die der Spieler "geworfen" werden soll.
    Anschließend die Velocity des Spielers noch auf deinen Vektor setzen und dann sollte alles funktionuckeln :)
    Code gibt es nicht, den darfst du dir erarbeiten, alle Betriebsgeheimnisse sollten nicht Preis gegeben Werden :p
     
    #3