Objekt hinter einem anderen spawnen lassen

  • GM 7

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

  • Objekt hinter einem anderen spawnen lassen

    Hi

    Ich habe ein Problem und hoffe jemand kann mir helfen. Mein objekt1 startet in eine zufällige Richtung. Es erstellt nach kurzer zeit object2, dass egal in welche Richtung sich das erste gerade bewegt immer genau hinter ihm, im Abstand von 6 pixeln, erscheinen soll..... wie mache ich das? wie bekomme ich aus der einen angebe "direction" die zwei werte x und y?

    ~Shiza
  • schonmal was von trigonometrie gehört?

    sin=gegenkathete/hypotenuse

    cos=ankathete/hypotenuse

    ... was 6 pixel sein soll = hypotenuse.

    also die direction von object1 hast du ja.. (in gradmaß)

    das is das argument des sinus. -> sin(direction)=y-wert/6_pixel (systematisch geschrieben)

    also sin(direction)*6 is die y-koordinate

    und schlißlich cos(direction)*6 is die x-koordinate RELATIV zu aktuellem x und y.

    also nennen wir es xneu und yneu.

    xneu=x+sin(direction) // bin mir gerade nicht sicher ob unterm sinus gradmaß oder bogenmaß stehen muss, das steht aber sicherlich in de rhilfe

    yneu=y+cos(direction)

    instance_create(xneu,yneu,object2);



    fertig
  • lengthdir_x und lengthdir_y sollten helfen.

    engthdir_x(len,dir) Returns the horizontal x-component of the vector determined by the indicated length and direction.
    lengthdir_y(len,dir) Returns the vertical y-component of the vector determined by the indicated length and direction.
  • Hast du in der Schule schonmal mit Vektoren gearbeitet?
    Falls nicht: Ein Vektor beschreibt die Strecke zwischen zwei Punkten auf einem Koordinatensystem. Zwischen den Punkten (1|1) und (4|4) liegt beispielsweise ein Vektor von (3,3) [die korrekte Schreibweise ist ne große Klammer, in der die beiden Zahlen untereinander stehen, aber das ist nur Zusatzinformation]. Jeder Vektor hat eine x-Komponente, die beschreibt, um wieviele Längeneinheiten der zweite Punkt auf der x-Achse verschoben ist. Die y-Komponente beschreibt die Verschiebung auf der y-Achse.
    Und genau diese Komponenten kannst du mit lengthdir_x und leghtdir_y angeben. Du beschreibst die Länge des Vektors und die Richtung, in die er zeigen soll.

    Der folgende Code:

    GML-Quellcode

    1. instance_create(x+lengthdir_x(6,-direction),y+lengthdir_y(6,-direction),/*objekt hier*/);

    kreiert z.b. eine Instanz des gewünschten Objektes am Ende des Vektors, der 6 Pixel lang und in die entgegengesetzte Richtung deines ausführenden Objekts gerichtet ist - was so ziemlich genau das sein sollte, was du wolltest. :p

    Setz dich mal ein wenig mit diesen Funktionen auseinander, die werden dir noch bei vielen Gelegenheiten sehr weiterhelfen.