Wenn 2 Instanzen des selben Objektes kollidieren soll einer von beiden gelöscht werden und der andere ein stück größer werden

  • GM 8

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

  • Wenn 2 Instanzen des selben Objektes kollidieren soll einer von beiden gelöscht werden und der andere ein stück größer werden

    Wie mache ich das?
    Angenommen beide Instanzen sind so ziemlich genau gleich, aber eine von beiden (welche soll zufällig sein) soll gelöscht werden, und dementsprechend quasi von der wieder anderen "absorbiert" werden.
    Edit: Hat sich eigentlich schon erledigt, aber die Frage hier unten is noch offen:

    Und wo wir schon grad dabei sind:
    Wie finde ich die "nearest_instance" von object X, wenn aber der Code in welcher instance_nearest ausgeführt wird selbst auch eine Instanz des objects X ist. Normalerweise würde sie dann ja immer nur sich selbst finden.
    Ich möchte aber die nächste Instanz finden welche zwar auch den gleichen object_index hat aber nicht = der aktuellen Instanz ist.

    kann mir jemand weiterhelfen? :) :thumbup:
    Sorm ist Schuld

    Edit: Doch ist er

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

  • Schreib dir ein eigenes instance nearest script. Du musst nur alle objekte von typ x durchgehen, prüfen on sie != self sind und den abstand zu self. Die mit dem geringsten abstand die ist nearest instance but not me :)

    edit:
    ich hab dir mal ein skript geschrieben ;) sollte genau das erfüllen, was du brauchst

    GML-Quellcode

    1. /// instance_nearest_not_me(x, y, object_index)
    2. var xx = argument0;
    3. var yy = argument1;
    4. var obj = argument2;
    5. var dist = 10000000;
    6. var near = noone;
    7. for(i = 0; i < instance_number(obj); i++){
    8. var n = instance_find(obj, i);
    9. if(n.id != self.id){
    10. var d = point_distance(xx, yy, n.x, n.y);
    11. if(d < dist){
    12. near = n;
    13. dist = d;
    14. }
    15. }
    16. }
    17. return near;
    Alles anzeigen

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