Verschiedene Path's an ein ander Reihen

    • GM 8

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

    • Verschiedene Path's an ein ander Reihen

      Hallo zusammen.

      Ich wollte mal fragen ob man unterschiedliche Path's an ein ander reihen kann.
      Ein beispiel.
      path 1=Gerade aus 10 meter
      path 2=Nach recht um die Ecke

      Könnte man man jeweils am ende eine Path der Instance sage, jetzt soll sie von dort aus weiter mit einem anderen path weiter machen.
      BSP
      path 1
      path 1
      path 2

      Denn ich hatte das schon mal im GM 7 ansatzt weise versucht. aber bin schon ander Path verschiebung gescheitert. Da der path dann irgen wo anders war,
      bzw die Instance die den path ausführte versetzt war.

      Worau ich hinaus will ist, ich würde gerne eine arte path Bibliothek anlegen in der Diverse path varianten hinterlegt sind.
      Und ich diese jeder zeit abrufen kann.

      Danke schon mal im voraus für die Hilfe

      mfg x-sascha
      Meine Signatur hat kein Visum für das GM Forum erhalten.
    • Öhm, das geht mit path_append(path,ind), allerdings ist die Verbindung zwischen den beiden Pfaden nicht das was du willst, nehm ich mal an.
      Ich hab mal ein eigenes Skript geschrieben, was zwei Pfade zusammen fusioniert:
      [hide=path_merge]

      GML-Quellcode

      1. //"Fusioniert" zwei paths und gibt die ID der Fusion zurück//
      2. //Copyright by Trixt0r :P//
      3. //arg0 - origin//
      4. //arg1 - path to add//
      5. //arg2 - closed//
      6. //arg3 - smooth//
      7. var origin, merge, i, fusion, closed, smooth, diffX, diffY;
      8. origin = argument0;
      9. merge = argument1;
      10. closed = argument2;
      11. smooth = argument3;
      12. fusion = path_add();
      13. path_set_closed(fusion,closed);
      14. path_set_kind(fusion,smooth);
      15. diffX = path_get_point_x(origin,path_get_number(origin)-1) - path_get_point_x(merge,0);
      16. diffY = path_get_point_y(origin,path_get_number(origin)-1) - path_get_point_y(merge,0);
      17. for(i = 0; i < path_get_number(origin); i+= 1)
      18. path_add_point(fusion,path_get_point_x(origin,i),path_get_point_y(origin,i),path_get_speed(origin,i));
      19. for(i = 0; i < path_get_number(merge); i+= 1)
      20. path_add_point(fusion,path_get_point_x(merge,i)+diffX,path_get_point_y(merge,i)+diffY,path_get_speed(merge,i));
      21. return fusion;
      Alles anzeigen
      [/hide]

      Das Skript funktioniert aber auch nicht ganz perfekt.

      Hier mal ein Example.

      MfG

      Albert Einstein schrieb:

      Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
    • Also ich hab mich jetzt mal an die Sache ran gemacht. Und bin zumindest schon mal eine Erkenntniss weiter.

      Das aneinander reihen von path ist ja die eine Sache. Was je geht.
      das überprüfe ich mit path_postions.
      Wenn es =1 ist dann ist er am path ende.
      Soweit so gut.

      Jedoch hab ich mich immer gewundet warum dann immer die Weg sich so komsci verschieben.
      Dem bin ich jetzt auf die schliche gekommen.
      Wenn ich einen path erstelle der seinen ersten punkt bei 0,0 hat. Hab ich denn path immer mit path_shift() zur instance versetzt. Das geht auch ganz gut.
      Jedoch habe ich mich gewundert was bei 2 versuch der weg noch mal versetzt wurde.

      Der Grund ist das man den weg , bevor man ihn erneut versetzt ihn erst mal wieder zurück setzt muss.
      Dazu muss man sich bei path start die x und y Koordinate speicher.
      Ich sind mal die Paar zeilen code, wen das Thema interessiert

      //Create Event

      GML-Quellcode

      1. //Create Event
      2. path_shift(path0,x,y)
      3. way=path_duplicate(path0)
      4. path_start(way,0.25,0,1)
      5. re=0
      6. x_start=x
      7. y_start=y

      //step Event

      GML-Quellcode

      1. //step Event
      2. if path_position=1 and re=0 then
      3. {
      4. path_shift(way,-x_start,-y_start)
      5. path_shift(way,x,y)
      6. x_start=x
      7. y_start=y
      8. path_start(way,0.25,0,1)
      9. re+=1
      10. }



      Ich werde mal versuchen daran weiter zu arbeiten. SO das man die Path funktion als eine art animation misbrauchen kann.
      Was ich schon mal gerne früher gehabt hätte für ein Schienen system.

      Nachtrag.
      Um es noch mal Bildlich zu erklären hab ich mir Volgendes überlegt.
      Man brauch sich ja nur vorstelle nan ist zb ein Auto in seinem Wohnzimmer. Und der weg sind diese Legestraßenplatten, fals die noch jemand kennt. Nur das Diese platten auf dem Tisch liegen.
      Und jedes mal wenn ich weiter fahren möchte und nur 1 platte habe von jeder sorte, muss ich mir erst eine Platte holen.
      Sie befahren. Am ende leg ich sie wieder zurck und hole mir die nächste Straßenplatte her.

      Das wäre das prinzip der Verstzung. Klapt bis jetzt ganz gut.
      Noch ein Hinweis. Wenn der path im path_editor nicht bei 0,0 anfängt mus bei path_shift() noch folgendes rein
      x-path_get_point_x(way,0)
      y-path_get_point_y(way,0)
      Denn der weg abzüglichder x und y koordinate des ersten punktes zur instant versetzt wird. Sonst verschiebt sich die instance wieder.

      Klapt soweit ganz gut.
      Meine Signatur hat kein Visum für das GM Forum erhalten.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von x-sascha ()