Variablen von Kolidierten Objekten abfragen

  • GM 7

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

  • Variablen von Kolidierten Objekten abfragen

    Hallo, ich hab eine Frage bezüglich des Threadtitels.

    Ich hab einen Spieler und wenn ich mit ihm vor einem Npc stehe(bzw mit ihm koliediere), soll er eine Variable des Npc's abfragen und dessen Inhalt an ein Script weitergeben.

    Mein code sieht folgender maßen aus:

    ins Step event

    GML-Quellcode

    1. if collision_point(x,y-5,false,false) && keyboard_check_pressed(ord('A')) //das heißt, dass ich den NPC von unten ansprechen will
    2. {
    3. text=other.text // text ist eine Variable des Spielers und other.text soll bedeuten das ich die text Variable des kolidierten Npc's abfragen will
    4. scr_Message(text)//scr_Message ist offensichtlich das besagte Script ;)
    5. }


    Ich hab es auch mit den "Other und Self buttons" der "Execute Code Aktion" versucht und das "notme" Argument der collision Funktion auf true und false gesetzt, leider ohne Erfolg. Das Kollisionsevent kommt nicht in Frage, weil ich ja möchte das der Spieler nur von unten den Npc ansprechen kann.

    Ich möchte nur ungern für jedes Objekt im Spiel, ein extra Kollisionsstatement schreiben weil mir das als äußerst ineffizien erscheint, da die Objekte unterschiedlichen Text enthalten und die Parent somit außen vor bleibt. :)

    Ist das was ich vor habe mit gml möglich?

    mfg
  • Probier das mal:

    GML-Quellcode

    1. if ((collision_point(x,y-5,false,false)) && (keyboard_check_pressed(ord('A'))) //das heißt, dass ich den NPC von unten ansprechen will
    2. {
    3. var oid;
    4. oid = instance_position(x, y - 5, NPC_Objekt);
    5. text = oid.text; // text ist eine Variable des Spielers und other.text soll bedeuten das ich die text Variable des kolidierten Npc's abfragen will
    6. scr_Message(text); //scr_Message ist offensichtlich das besagte Script ;)
    7. }
    MfG,
    -fabse64
    fabse64 -> haiyyu
  • Ich denke an eine einfachere Lösung die ich momentan nicht ausprobieren kann

    GML-Quellcode

    1. with(other)
    2. {
    3. //zeige text von kollidiertem npc
    4. show_message(text);
    5. }
    6. //zeige eigenen text
    7. show_message(text);


    das sollte eigentlich funktionieren, was seltsam ist:

    GML-Quellcode

    1. other.x
    müsste ja auch funktionieren ...

    MfG Genesis
  • Da alle collisionsfunktionen die Id des colidierden objects wiedergeben, kannst du es so machen:

    GML-Quellcode

    1. objcol=collision_point(x,y-5,false,false)
    2. if objcol && keyboard_check_pressed(ord('A'))
    3. {
    4. text=objcol.text
    5. scr_Message(text)
    6. }