If there is an object at position

  • GM 8

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

  • If there is an object at position

    Hallo,

    ich arbeite mit der Trag & Drop Variante des Gamemakers und habe in meinem Spiel einen Bogenschütze. Dieser hockt einfach nur da und schiesst in regelmässigen Abständen Pfeile horizontal von links nach rechts (Oder anders herum, je nach dem in welche Richtung er schaut).
    Das funktioniert auch wunderbar, allerdings schiesst er die Pfeile derzeit über den ganzen Raum, auch wenn die Spielfigur nicht in der Nähe ist. Nun dachte ich das Problem mit dem Befehl "If there is an Object (Die Spielfigur eben) at position bequem lösen zu können, nur bezieht sich das eben nur auf eine ganz bestimmt Position die man dort angibt, springt man drüber oder läuft dran vorbei dann schiesst der Schütze schon nicht mehr.

    Kann man bei dem Befehl so etwas wie Bereiche festlegen so was wie "kleiner als", so in der Art von x<300 das der Schütze immer dann aktiv wird wenn sich die Figur eben in der Nähe befindet?
  • Hmm, also irgendwas ist noch falsch und ich finde den Fehler nicht. Nun schiesst mein Schütze wieder munter weiter Pfeile egal wo ich stehe. Also in der Zeile Variable habe ich nun stehen point_distance(x, y, Schuetze_Links.x, Schuetze_Links.y) ich gehe mal davon aus das ich das "is smaller then" nicht auch noch in die Zeile schreiben muss, aber selbst wenn ich das tue macht das keinen Unterschied. Unter value habe ich die Entfernung eingetragen, wegen mir 200 aber selbst wenn ich nur 50 angebe schiesst der Schuetze bereits obwohl er noch nicht im Bild ist. Ich habe noch mal die Leerstellen in dem Befehl raus genommen, aber es scheint fast egal was ich dort hin schreibe denn es ändert sich nichts.

    Das hängt bestimmt wieder an einer Kleinigkeit, aber irgendwie bin ich blind momentan. Muss ich im Create Befehl die Variable vielleicht noch erstellen?

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

  • LoganTheManster schrieb:

    statt "spieler" setzt du den Namen des Spielfigurobjekts rein

    Da die Aktion im Schützenobjekt drin ist, bezieht sich x, y und Schuetze_Links.x, Schuetze_Links.y auf genau den gleichen Punkt, somit ist der Abstand der Punkte kleiner als 200. Ersetz Schuetze_links mit deinem Spieleobjekt, dann müsste es klappen.
  • Ich war etwas verwirrt weil Phoenix etwas vom Bogenschützenobjekt geschrieben hatte, aber es klappt nun. Vielen herzlichen Dank, die Amazonen schiessen nun so wie sie sollen und sie hören sogar damit auch auf wenn man sich entfernt, sensationell. Das kann ich an einer anderen Stelle eigentlich auch noch ganz gut gebrauchen fällt mir da gerade ein, das war mir schon lange ein Dorn im Auge...

    Recht herzlichen Dank! :gmlove:
  • Ich muss mich doch noch mal zu Wort melden, es gibt scheinbar immer noch ein Problem. Ich bekomme folgende Fehlermeldung...



    Das kann ich absolut nicht verstehen wo da der Fehler liegen soll zumal es immer nur den rechten Schützen betrifft (Ich habe noch eine gespiegelte Variante für die andere Richtung). Hinzu kommt noch das der Fehler nicht immer auftritt nur nur ab und zu. Wenn da jemand eine Lösung wüsste warum x hier eine unbekannte Variable ist, dann währe ich zutieft zu Dank verpflichtet.

    Oder müsste ich bei den rechten Schützen unter Oparation "larger then" angeben? Das funktioniert allerdings nicht, dann schiesst er wieder über das ganze Feld...
  • Die Fehlermeldung wird wahrscheinlich ausgespuckt, weil "Ria" nicht existiert. Vergewissere dich, dass die Instanz existiert und du sie nicht aus Versehen deaktiviert oder zerstört hast.

    MfG

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • Ich habe mir das mal angesehen, aber eigendlich habe ich Ria in keinster weise bis jetzt zerstört. Ria ist meine Spielfigur und da ich derzeit noch keine Lebensenergieleiste für sie habe habe ich zu Testzwecke bis jetzt immer "Restart Room" gemacht.

    Ich habe hier und da noch was umgestellt und bis jetzt ist der Fehler auch nicht wieder aufgetreten. Ich muss das mal weiter beobachten und so langsam mal an die Symbolleiste gehen, vielleicht löst sich das Problem dann von alleine (Und andere treten dafür auf :huh: )

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

  • Amaunir schrieb:

    aber eigendlich habe ich Ria in keinster weise bis jetzt zerstört.


    Eine Referenz auf ein Objekt schlägt nicht nur fehl, wenn du die entsprechende Instanz schonmal zerstört hast, sondern allgemein, wenn sie nicht existiert (Deaktivierte Instanzen zählen z.B. auch dazu). Und ein relevanter Faktor in diesem Spielchen ist zum Beispiel die Reihenfolge, in der die Instanzen beim Start des Rooms erstellt werden. Ich schätze mal, dass du alle relevanten Objekte des Levels per Hand in den Room-Editor gesetzt hast? In diesem Fall werden die Instanzen, die du zuerst in den Raum setzt, auch zuerst generiert, da ihre ID niedriger ist als die der später reingesetzten Instanzen (Achte dazu mal auf die "id: "-Zeile unten rechts im Room Editor, wenn du die Maus über ein Objekt bewegst). Die erste erstellte Instanz hat die ID 10001, ab da wird hochgezählt.