"gehe-zu"-Funktion?

  • GM 8

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

  • "gehe-zu"-Funktion?

    Hallo,
    ich und mein "Team" arbeiten gerade an einem RTS.
    Gestern haben wir festgestellt, das es keine "gehe-zu"-Funktion gibt,
    sondern nur Funktionen, bei denen sich das Objekt in eine Richtung bewegt!
    Unsere Frage wurde in keinen Tutorial beantwortet.
    Gesucht ist eine Funktion, bei der sich der das Objekt zu mouse_x, mouse_y
    bewegt, stehen bleibt und dann die Variable image_speed zu 0 setzt.+
    Uns bereitet das echt Kopfschmerzen. 8|
    Sehr gut wäre ein Code-beispiel.
    Thx schon mal im voraus!
  • GML-Quellcode

    1. if(x < mouse_x-speed/2 or x > mouse_x+speed/2 or y < mouse_y-speed/2 or y > mouse_y+speed/2)//wenn das object nich auf der maus liegt
    2. {
    3. move_towards_point(mouse_x,mouse_y,5)//zur maus fahren
    4. image_speed = 1
    5. }
    6. else//wenn das object auf der maus liegt
    7. {
    8. image_speed = 0
    9. speed = 0//anhalten
    10. }


    Wenn ihr bes sowas nicht weiterkommt, solltet ihr villeicht mit etwas einfacherem beginnen. ;)

    Mfg Alron

    Edit: ups, fehler. ist korrigiert

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Alron ()

  • Das Objekt hält nicht an. Es tut genau das, was es vorher auch getan hat. :(
    Es muss bei klick zur letzten klick-position gehen, wenn es die erreicht hat anhalten.
    sry, dein Code is fast identisch zu meinem. :/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mr. Diesel ()

  • Ich würde das folgendermaßen machen: Im Create Event des Objekt erstellst du zwei Variablen (z.B. mx und my), die später die Position der Maus festhalten und setzt image_speed auf 0. Im Global Left Mouse Event übergibst du dann den beiden Variablen die aktuellen Mauskoordinaten, lässt das Objekt mit der Funktion move_towards_point zu den "Koordinatenvariablen" bewegen und setzt image_speed auf 1. Im Step Event prüfst du dann mit der Funktion distance_to_point, ob die Distanz kleiner als 1 ist und setzt in so einem Fall die GM-interne Variable speed auf 0, damit das Objekt stehen bleibt und setzt image_speed auf 0. Das wars auch schon.

    Gruß,
    Boskura

    ____
    Adventskalender 2010: Blue Smiley
  • Gute Idee, hab ich schon probiert...
    sobald der speed größer als 1 ist, kannst du es vergessen.
    Man müsste mit 1, 0.75, 0.50 und so weiter arbeiten. Dann die Steps hochfahren auf 90.
    Klingt gut, aber mancher prozessor macht da nicht mit. :-/
    wäre cool, wenn man .py dateien von python einfügen könnte. Wie eine Extension, aber das wäre
    die Arbeit nicht wert den importer zu schreiben.

    ich frag einfach mal den typen:
    yoyogames.com/games/83070-warcraft-ii-copper-wars
  • Mr. Diesel schrieb:

    sobald der speed größer als 1 ist, kannst du es vergessen.
    Nicht unbedingt. Das kommt immer drauf an, wie groß das Objekt ist. Bei einem Objekt, dessen Sprite einen 32x32 px großen Raum füllt, kann dessen speed für diese Methode sogar 32 sein. Ich hab ein beispiel.rar, in dem das immer funktioniert.

    Gruß,
    Boskura

    edit: Ok, ich merke gerade bei einem Speed von 32 ist es schon was buggy, hast recht. Aber bei niedrigen Speedwerten klappt es.

    ____
    Adventskalender 2010: Blue Smiley
  • Benutzer online 1

    1 Besucher