Genaue Beschreibung von "with" und "other" & Suche nach Objekt mit Variable im Raum

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

  • Genaue Beschreibung von "with" und "other" & Suche nach Objekt mit Variable im Raum

    Hallo zusammen,

    kann mir jmd. die genaue Funktion von other.**** und (with) erklären?

    Danke! ^^

    EDIT:

    Gleich noch eine Frage:

    Ich habe vor einen Teleporter zu Bauen, der ein Objekt bei Tastendruck zum gleichen Teleporter (der im Raum vorher im Create Event als Teleporter = 2 bezeichnet wurde) beamen.

    Wie kann ich ein Objekt im Raum mit einer bestimmten Variable im Raum ausfindig machen?

    Ich habe vor mehrere Teleporter Instancen im Raum zu platzieren und will im Raum den Teleporter = (z.b.) 5 zu 6 beamen lassen.... hoffe ihr versteht was ich meine :)

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

  • Hallo,
    other kannst du nur (glaub ich) im Collision event verwenden. Other ist dann die Instanz mit der dein Objekt kollidiert. Wäre z.B: hilfreich wenn du mehrere Gegner hast die bei der collision mit dem Objekt player leben verlieren. DU könntest dann zum Beispiel im Player collisions-Event mit den Gegner schreiben:

    GML-Quellcode

    1. other.hp -= 1;
    . Das other ist dann die Instanz die du berührst, nicht alle Gegner. MIt with kannst du einfach ein event in einem anderen objekt ausführen. Zum beispiel könntest du das obere auch mit with lösen:

    GML-Quellcode

    1. with (other) {hp -= 1;}

    LG Afroman
  • sagen wir du gehst in Teleporter 1(links oben in der ecke) und willst zu Teleporter 3 (rechts unten in der ecke).
    der port Vorgang wird wenn du dich in dem Teleporter befindest und die gewünschte taste drückst ausgelöst.
    möchtest du jetzt angeben wo es hin soll oder willst du zu einem bestimmten Teleporter gebracht werden?
    wenn du einen teleporter auswählen möchtest kannst du ein dropdown menü einfügen (du klickst auf den teleporter in dem du stehst und an der position der maus wird ein menü geöffnet "wie beim rechtklickmenü in windows") an die einzelnen menüpunkte (namen deiner teleporter) bindest du einfach ein teleport befehlt du kannst aber auch angeben das wenn du den teleporter betrittst das du sofort zum ziel-teleporter "gebeamt" wirst.
    es gibt eine funktion die dich teleportieren lässt aber ich kenne sie nicht hatte mich mal mit jemanden unterhalten der die selbe idee hatte, am ende hatte ihn das was ich dir grad schrieben habe geholfen.
    hoffe dir hilft es auch :D

    MfG ZaMi_

    EDIT:

    habs mal ausprobiert
    GameMaker: Studio Pro


    im Step Event: (für das teleportieren per Klick oder drücken einer taste)


    if place_meeting(x,y,obj_teleporter_1)
    and mouse_check_button_released(mb_right)
    {

    x = obj_teleporter_2.x;
    y = obj_teleporter_2.y;
    }

    oder direkt bei der Kollision mit dem objekt

    if place_meeting(x,y,obj_teleporter_1)

    {

    x = obj_teleporter_2.x;
    y = obj_teleporter_2.y;
    }

    --------------------------------------------------------------------------------------
    Husi012's befehl für den port " x = obj_teleporter_2.x;y = obj_teleporter_2.y; "
    läuft besser als mein erster weg, beides funktioniert aber sehr gut auf pro und lite

    MfG Husi012 & ZaMi_ :thumbsup:

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

  • Hallo Afroman,
    Danke für deine Antwort!

    Und an ZaMi_:
    Der Teleporter wird von mir vorher festgelegt, ich sag mal es gibt 6 Stück.
    Und ich würde gerne im Room vorher festlegen, welscher 1,2,3,4,5 und welcher 6 ist. Nun soll 1 zu 2 beamen ( und umgekehrt) 3 zu 4; und 5 zu 6... ich müsste quasi die x,y koordinaten des Teleporters "2" abfragen... sprich den Teleporter den ich im Raum als " teleporter = 2" angegeben hab.

    Hat jmd. eine Idee?
  • if place_meeting(x,y,obj_teleporter_1)
    //wenn du im teleporter stehst

    and mouse_check_button_released(mb_right)
    // und du die rechte maus taste loslässt (es geht auch pressed z.B.)

    {

    x = obj_teleporter_2.x // begebe dich zum ort des gewünschten teleporters auf der x achse
    y = obj_teleporter_2.y; // begebe dich zum ort des gewünschten teleporters auf der y achse

    }

    du musst einfach nur die namen der gewünschten teleporter einfügen

    also eigentlich so

    im step event für teleporter 1

    if place_meeting(x,y,obj_teleporter_1)
    and mouse_check_button_released(mb_right)

    {

    x = obj_teleporter_2.x;
    y = obj_teleporter_2.y;

    }

    im step event für teleporter 2

    if place_meeting(x,y,obj_teleporter_2)
    and mouse_check_button_released(mb_right)

    {

    x = obj_teleporter_1.x;
    y = obj_teleporter_1.y;

    }

    und halt für die anderen immer so weiter
    eine sache darfst du nicht vergessen
    jeder teleporter (1,2,3,4,5,6) muss ein eigenes objekt sein
    du kannst nicht einfach ein teleporter sprite haben das einem objekt zuschreiben und es 12 mal im raum verteilen und dann immer alles untereinander schreiben du musst jeden teleporter (1,2,3,4,5,6) als eigenes objekt machen ( einfach duplizieren und namen auf "obj_teleporter_1,obj_teleporter_2 usw reicht vollkommen) dann im jeweiligen teleporter den passenden code eintragen :D
    sollte klappe.

    MfG ZaMi_


    EDIT:
    die position des teleporters brauchst du nicht abfragen da das objekt im raum gegeben ist wenn du jetzt "x = obj_teleporter_2.x;y = obj_teleporter_2.y;" schreibst weiß das programm automatisch wohin es genau geht :D

  • other kann auch in einem with Block verwendet, um an die Instanz zu kommen, in der der with Block steht.

    ZaMi_ schrieb:

    jeder teleporter (1,2,3,4,5,6) muss ein eigenes objekt sein
    Oh Gott, bitte nicht.

    Du hast im Room Creator die Möglichkeit für jede Instanz im Raum einen speziellen Creation Code festzulegen. Den Teleportern gibst du auf diese Weise ihre ids. Ich nehme hier jetzt mal die Variable "tpid" um die id zu speichern.
    Danach kannst du mit with(Teleporter) auf alle Teleporter Objekte im Raum zugreifen und mit einer einfachen if Abfrage den passenden herausfiltern.
    Ich hab das ganze mal in ein Beispiel verpackt.
    Dateien
    • teleporter.zip

      (9,96 kB, 355 mal heruntergeladen, zuletzt: )