Timelines wollen einfach nicht

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

  • Timelines wollen einfach nicht

    Hallo,
    ich weiß nicht ob ich schlichtweg zu dumm bin oder wo sonst der Fehler liegt.
    Ich arbeite immer noch an meinem Game und hab bis jetzt auch alles hinbekommen und verstanden (obwohl ich ja sonst nichts mit solchen Dingen am Hut habe).
    Nun will ich aber eine Timeline adden: schön und gut.
    Das Objekt bewegt sich am Anfang auch, will aber weder die Richtung wechseln, noch stehen bleiben oder sonst was.
    Habs einfach mit Reverse Direction versucht.
    Habs mit Set Speed versucht.
    Hab verschiedene Steps gemacht, aber das Objekt macht gar nichts.
    Vielleicht weiß ja jemand von euch was ich falsch mache oder jemand weiß wo man sich das angucken kann anhand eines Beispiels.
    Und Ja, ich hab Windapples Hilfe studiert, (die mir bis jetzt auch immer sehr gut weitergeholfen hat).
  • als ich dies gelesen habe, musste ich schmunzeln^^......wenn du die timeline in jedem step auf 0 stellst, dann führt er immer nur position0 in der timeline aus weil er sie im nächsten schritt wieder auf 0 stellt..... :P ... timelines immer nur dann ausführen, wenn sie fertig sind......oder einfach nur im create-event und ans ende der timeline die timeline wieder auf 0 stellen.

    Xmas-Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Danke

    Ok jetzt hab ich es raus.
    Man kann sich aber auch blöd anstellen.^^

    Hab noch mal ne Frage.
    Kann man ein Objekt so einstellen, dass es hochspringt wenn auf es geschossen wird, und dass es stehen bleibt, wenn die Kugel ueber ihm ist und er da nicht reinspringt?
    Und das denn mit der Timeline verbinden?

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

  • GML-Quellcode

    1. {
    2. oid=instance_nearest(x,y,obj_bullet);
    3. if(point_distance(x,y,oid.x,oid.y)<200)
    4. and(oid.y>y-sprite_yoffset)
    5. and(oid.y<y-sprite_yoffset+sprite_height)
    6. and not(oid=last_oid)
    7. {
    8. /*jumpf code*/
    9. last_oid=oid;
    10. oid=0;
    11. }
    12. }
    Alles anzeigen

    das sollte gehen.... ersetzte obj_bullet durch den namen deines schusse
    ersetzte 200 durch die sehdistanz des gegners
    und ersetzte /*jump code*/ durch deinen code zum springen

    bewegungen eines gegners würd ich nicht mit timelines machen, da du sonst für jeden gegner eine neue timeline machen musst, da das level immer anders aussieht...

    Xmas-Dragoon

    Edit: fehler im code korrigiert
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!

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

  • Und womit sollte man die Bewegungen eines Bots festlegen.
    Es ist auch ziemlich mühsam zu gucken wann er hoch springen muss um auf eine Plattform zu kommen.
    Und er sollte sich nicht immer gleich bewegen.
    Also es ist schon ziemlich mühsm mit Timelines

    Edit: Bei deinem Code kommt ne Fehlermeldung
    Unknown Variable x

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

  • step-event:

    GML-Quellcode

    1. {
    2. oid=instance_nearest(x,y,obj_bullet);
    3. if(point_distance(x,y,oid.x,oid.y)<200)
    4. and(oid.y>y+sprite_yoffset)
    5. and(oid.y<y+sprite_yoffset+sprite_height)
    6. and not(oid=last_oid)
    7. {
    8. vspeed-=10;
    9. last_oid=oid;
    10. }
    11. }
    Alles anzeigen

    und im create-event setzt du die variable last_oid = 0
    dann sollte das gehen, wie vorher scho musst du obj_bullet durch dein schussobjekt ersetzten

    Xmas-Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • ich hab kein mail gekriegt..... habe das problem trotzdem gefunden:

    GML-Quellcode

    1. {
    2. oid=instance_nearest(x,y,obj_bullet);
    3. if(oid=-4){exit;}
    4. if(point_distance(x,y,oid.x,oid.y)<200)
    5. and(oid.y>y+sprite_yoffset)
    6. and(oid.y<y+sprite_yoffset+sprite_height)
    7. and not(oid=last_oid)
    8. {
    9. vspeed-=10;
    10. last_oid=oid;
    11. }
    12. }
    Alles anzeigen

    der fehler war, dass instance_nearest() wenn kein gesuchtes objekt existiert -4 als ergebnis liefert

    Xmas-Dragoon
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!
  • Danke funktioniert.
    Hut ab.
    Aber um noch mal auf die Bewegung des Gegners zurückzukommen, wie lässt sich das denn am besten machen, dass er auch auf Plattformen und so weiter springen kann?

    Edit: Kleiner Bug ist noch drin: Der springt hoch wenn man unter ihn schießt, aber nicht wenn die Kugel direkt auf ihn zukommt.

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

  • also ich hab hier ein beispiel angehängt. das monster wird gesteuert indem es marken berührt, welche ihm sagen was es machen soll (z.B. springen). ist natürlich nur ein billiges beispiel...

    Xmas-Dragoon, der schlechte pixler

    Edit: wie fliegen die schüsse? nur horizontal oder 360°?
    Dateien
    • (ki).zip

      (27,35 kB, 201 mal heruntergeladen, zuletzt: )
    int (*x(*x(int))[5])(int*);
    Confused? Yes, it's C!

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