mehrere Instanzen des gleichen Objekts

  • GM 8

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

  • mehrere Instanzen des gleichen Objekts

    Gute Abend alle zusammen,

    ich bin gerade echt am verzweifeln.
    ich habe ein paar Instanzen des selben Objektes. Diese sollen, wenn Sie sich aufeinander zu bewegen, sich ausweichen.
    Bin da auch schon recht weit.
    Ich habe versucht das über Point_direction(x,y,obj_friend.x, obj_friend.y) zu realisieren.
    irgendwie will das nicht so. Habe dann mal eine Variable erstellt (dir=Point_direction(x,y,obj_friend.x, obj_friend.y)) und diese im Debug-modus überprüft. Der Winkel ist immer 0.
    Also wie gesagt, die beiden Instanzen sind vom selben Objekt. Ich vermute mal, dass jede Instanz den Winkel zu der ersten Instanz des Objektes berechnet. Und die erste Instanz überprüfe ich halt im Debug Modus und deshalb zeigt er mir den Winkel 0 an.
    Nur....was muss ich schreiben, dass der nicht den Winkel zu sich selbst berechnet?
    Jedenfalls schätze ich, dass das hier das Problem ist.

    Sufu zeigt leider nichts :/
  • Du kannst ein Kollisionsareal erstellen, das zB immer vor deinem Objekt ist und sich mitdreht.

    GML-Quellcode

    1. colx = lengthdir_x(16,direction);
    2. coly = lengthdir_y(16,direction);


    das Areal checkt dann ob sich darin eine instance von deinem Objekt befindet und wie die ID davon ist

    GML-Quellcode

    1. collobj = collision_circle(colx, coly, 16, obj_friend, 0,1);
    2. if callobj != noone
    3. {
    4. direction = collobj.direction;
    5. }


    collision circle checkt ob sich im Kreis ein obj friend befindet, aber nciht sich selbst. Der Mittelpunkt des Kreises kannst natürlich auch du selbst sein, xy statt colxcoly... Aufpassen musst du aber wenn es mehr als 1 obj_friend in dem collision circle gibt abgesehen von dem das die collision checkt. Denn an welches obj_friend soll er sich halten?

    Da solltest du dich noch mit instance_nearest und instance_furthest spielen :)

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Hallo alle,

    also erstmal danke für Eure Hilfe.
    Ich habe das jetzt folgendermaßen gemacht.
    Jede Instanz prüft insgesamt 6 Punkte vor sich und je nachdem wo Platz ist, bewegt diese sich in eine bestimmte Richtung.

    Ich habe als Beispiel mal ne exe. hinzugefügt.
    Die kleinen Robots sollen von dem grauen Quadrat zum Grünen Quadrat und dort ne Weile warten, dann wenden und wieder zum anderen Quadrat.
    Dabei sollen sie sich selbst und dem Panzer (Steuerung WASD) ausweichen.
    Wer Lust hat kann sich das Getümmel mal anschauen und seinen Senf dazu geben. Denkt ihr das ist so zufrieden stellend gelöst? Die 6 Punkte vor jedem Robot sind übrigens die Punkte, welche abgefragt werden, ob frei ist.

    dropbox.com/s/st5dus8r3tkz8w3/Robots.exe

    Bitte keinen Senf zu der Grafik. Es geht lediglich um die Engine