Blickrichtung dem "move_towards_point"-Prozess anpassen...

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

  • Blickrichtung dem "move_towards_point"-Prozess anpassen...

    Hallo liebes Forum.

    Ganz bestimmt wurde diese Frage bereits gestellt und noch bestimmter beantwortet, doch leider finde ich mit Hilfe der Suchfunktion nicht, wonach ich suche. Was möglicherweise auch daran liegt, dass ich als bekennender Drag und Dropper gar nicht so recht weiss, wonach ich suche...

    Ne, ganz kurz:
    es geht um ein Script, das sogar ich verstehe:

    {
    global.posx=obj_strichmaxl.x;
    global.posy=obj_strichmaxl.y;
    if (distance_to_object(obj_player)<200) then
    {move_towards_point(global.posx,global.posy,1.8)};
    else {speed=0;};
    }

    Dieses Script findet man im Step eines ganz, ganz fiesen Objekts, das dem armen Strichmaxl an's Leder möchte. Nehmen wir an, das böse Objekt ist eine Wespe (es IST nämlich eine Wespe). Es ist soeben auf Strichmaxerl.x-199 und schwirrt auf Strichmaxl zu. Die Sache hat nur einen Haken: die Wespe hätte das Maxl gerne von links überrascht, doch das Maxl war irgendwie schlauer und befindet sich bereits links von der Biene.

    Nicht schlau hingegen der kleine Kht - er lässt die Wespe von rechts mit Blickrichtung nach rechts angreifen (weil image single im Create Event bzw. Ausgangspunkt der Wespe nun 'mal so ist / war). Zwar möge man meinen: "Eh gut - der Stachel einer Wespe ist ihr Hinterteil", doch ganz so realistisch wollte ich's dann DOCH nicht haben...

    Meine Frage lautet somit eigentlich nur (warum schreibe ich immer soviel?!): wie binde ich das korrekte "image_single=" in dieses kleine Script ein? Sodass image_single zB. 0 ist, wenn die Wespe Koordinate Maxl minus ist und 1 ist, wenn es Maxl plus ist. Habe einiges mit meinen bescheidenen Basic-Kentnissen versucht, aber es haut nicht hin. Leider scheiter ich bereits an derartig einfachen Dingen (heul).

    Äh... bestimmt könnte man mein Anliegen auch in einem Satz erklären aber ich bin nun 'mal ein "Zerredungskünstler" (sorry).

    Danke für jeden, der weiss, was ich meine und mir eine Antwort liefern kann.
    Schöne Grüsse.

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

  • RE: Blickrichtung dem "move_towards_point"-Prozess anpassen...

    GML-Quellcode

    1. {
    2. global.posx=obj_strichmaxl.x;
    3. global.posy=obj_strichmaxl.y;
    4. if (distance_to_object(obj_player)<200) then
    5. {move_towards_point(global.posx,global.posy,1.8)};
    6. else {speed=0;};
    7. }
    8. if x < global.posx image_single=0 // Wespe links von Maxl
    9. else if x > global.posx image_single=1 // Wespe rechts von Maxl
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Danke lieber Windapple!
    Zwar bin ich mir ziemlich sicher, es so probiert zu haben, doch anscheinend irre ich mich - sonst hätte es geklappt..
    Frag mich nur, was ich dabei falsch gemacht haben könnte...

    if x < global.posx image_single=0
    Hmmm... ich glaube ich habe ein "then" ("if blabla psx then image blabla") reingeschmissen.
    Jedenfalls danke für die Rettung. Werd's mir merken...
    Grüsse.
  • @kht: Am "then" läge es nicht, das kann man reinschreiben oder weglassen, wie man es eben lieber hat.

    @Megamag: Dadurch würde die Wespe dann auf dem Kopf stehen, wenn sie in die andere Richtung fliegt.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Original von Windapple
    @kht: Am "then" läge es nicht, das kann man reinschreiben oder weglassen, wie man es eben lieber hat.

    @Megamag: Dadurch würde die Wespe dann auf dem Kopf stehen, wenn sie in die andere Richtung fliegt.


    Danke für die Info, Windapple.
    Komisch, dann weiss ich auch nicht.
    Seit dem ich keinen Schluck Alk mehr trinke, weiss ich vieles nicht...

    Ja, Megamag. Am Kopf stehende Wespen - das würde die mit dem Popo vorausfliegenden Wespen noch toppen... :)
    Abgesehen davon, dass ich "image_angle=direction"-Befehle rauslassen will. Wenn meine Sprites rotatieren sollen, fertige ich dies als Bilder an, damit das Programm nicht soviel "arbeiten" muss. Kann natürlich auch totaler Blödsinn sein, was ich hier behaupte. Naja, ich brauche die Funktion eh so gut wie nie.


    Doch habe ich nun eh schon wieder ein "neues" Problem.
    Ich Idiot habe gar nicht bedacht, dass die Wespen animiert sind. Sind zwar nur zwei Bilder pro Richtung (simpler Flügelschlag) aber dennoch. Mit image_single komme ich also gar nicht weit (trotzdem danke, ich brauche es so oder so früh oder später).

    Am Liebsten wäre mir in diesem Fall im Step von wespe_links ein if x < global.posx change instance into object obj_wespe_rechts, yes performing events - was so natürlich nicht geht. Und andersrum hätte ich's im anderen Object gemacht. Den Object-Wechsel hätte ich auch in ein Alarm-Event schreiben können, doch if x > global.posx alarm 3 geht leider auch nicht...

    Sorry, dass ich nerve mit derartig einfachen Sachen.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von kht ()

  • also ich würde von change instance grundsätzlich abraten. mehrere Objekte zu machen, nur weil es eine verschiedene richtung ist, ist quatsch. Nun muss ich bei dir aber unterscheiden:
    1. Hast du zwei Sprites, die je für eine Richtung stehen und die einzelnen Bilder der Animation enthalten
    2. Hast du ein Sprite, von dem zB die ersten 3 Bilder für links, die anderen 3 für rechts stehen?

    Falls 1., ändere Windapples Code wie folgt:

    GML-Quellcode

    1. [...]
    2. if x < global.posx sprite_index=spr_wespe_rechts // Wespe links von Maxl (guggt nacht rechts)
    3. else if x > global.posx sprite_index=spr_wespe_links // Wespe rechts von Maxl (guggt nach links)


    Fürs zweite hab ich jetzt gerade keine Lösung, kann die aber auch eine machen, falls es das ist, was du willst.
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.