Punkt in einer bestimmten Distanz

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

  • Punkt in einer bestimmten Distanz

    Hallo Alle zusammen

    Ich bin gerade dabei ein Strategie Spiel zu machen.
    Nun habe ich auch schon ein Problem:

    (Habe unten ein Beispiel angehängt)

    Und zwar: Ich habe in der Mitte ein blaues Viereck (Haus).
    Nun möchte ich, dass wenn man zB. die Entertaste drückt, das Object
    obj_unit an einer freien Position, die am nähesten am Haus dabei ist und keine Kollision auslöst,
    erstellt wird. Wie kann man so was machen???
    Ich hab da mal einen anderen Code geschrieben, der einfach 8 Positionen rund herum abgefragt hat.
    Geht das auch anders?
    Dateien
    • Strategie.zip

      (16,73 kB, 118 mal heruntergeladen, zuletzt: )
  • Ohne mir dein Beispiel anzugucken schmeiß ich einfach mal folgenden Codeschnipsel in den Raum rein:

    GML-Quellcode

    1. dir=random(360)
    2. while !place_free(x,y)
    3. {
    4. x+=lengthdir_x(1,dir)
    5. y+=lengthdir_y(1,dir)
    6. }

    Setz den in das Createevent deiner Einheiten. (Sowohl das Haus, als auch die Einheiten müssen dafür solid sein)
    Durch den Code wird die Einheit Pixel für Pixel in eine vorher zufällig gewählte Richtung verschoben, bis es auf einem freiem Platz steht.
    Wenn du nicht willst, dass sie so chaotisch ums Haus erscheinen, kannst du die dir variable auch global machen und dann nach jedem erstellen erhöhen, sodass sie dann immer im Kreis nebeneinander erscheinen.