ID einer Instanz ausgeben ?

  • ID einer Instanz ausgeben ?

    Hi, versuche mich grade an einem Rundenstrategiespiel und habe da sehr viele Instanzen eines Objektes auf dem Bildschirm. Jetzt möchte ich dass man dieses Instanzen alle separat auswählen und bewegen kann. Ich müsste bei einer Kollision mit so einer Instanz seine ID irgendwie in eine Variable speichern und diese dann zb. in einem solchen Code : " (hier sollte die ID stehen).x = ....)" verwenden. Fällt euch da was ein ?
    Achja, habe da das kleinere Problem, dass bei dem Code :

    Quellcode

    1. instance_create(0,0,objekt);
    2. sleep(1000);
    3. screen_redraw();
    4. with objekt instance_destroy();

    das sleep ganz am Anfang ausgeführt wird, dann wird die Instanz hergestellt und gleich wieder zerstört....gewünscht wäre die Reihenfolge wie im Code.
  • wenn du eine instanz erstellst, wird automatisch die id dieser zurückgegeben. so speicherst du sie in eine variable:

    GML-Quellcode

    1. objekt=instance_create(x,y,obj_object)

    wenn du dann zb für eine collision nur diese instanz willst, schreibst du statt dem objektnamen nur mehr die variable hin.

    © 2008 by Teamgrill Productions
  • Hmmm....das Problem liegt wo anders. Ok, ich beschreibs genauer. Ich habe eine Cursor der sich auf dem Feld bewegt. Ich habe ein Objekt die die Truppen sein sollen. Auf der Map werden immer wieder ( zimlich viele)Instanzen erstellt. So, nun geht man mit dem Cursor auf eine Instanz um sie zu bewegen. Wenn ich jetzt einfach das Objekt bewegen lasse, bewegen sich auch alle Instanzen. Jetzt will ich aber das nur die mit dem Cursor angeklickte Instanz sich bewegt. Also bräuchte ich sowas wie : " prüfe mit welcher Instanz der Cursor kollidiert und speichere seine ID in eine Varbiable. Setze dann die Variable in den Bewegunsgmechnanismus ein". Klar könnte ich bei 50 Truppen, 50 verschiedene Instanzen extra benennen und die dann durch 50 if-Schleifen zuweisen, aber das müsste doch etwas bequemer funktionieren oder ?
  • oder du machst eine normale kollisionsprüfung und schreibst dann:

    GML-Quellcode

    1. objekt=instance_nearest(mouse_x,mouse_y,obj_object)
    2. with (objekt)
    3. {
    4. //irgendwas
    5. }

    © 2008 by Teamgrill Productions
  • :) Erste Hürde überstanden, danke für eure Hilfe. Habe die längste Zeit nicht verstanden dass x,y dem Cursor entsprechen muss weil der ja der Bezugspunkt ist. Hab keine Maussteuerung, dann hab ich das mouse_x und mouse_y fälschlicherweise ignoriert.
  • Benutzer online 1

    1 Besucher