instance_deactivate_region

  • GM 6

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

  • instance_deactivate_region

    Hi Leute,

    habe folgendes sehr merkwürdiges Problem. Vielleicht hat von euch einer schon einmal Erfahrung damit gemacht.
    Und zwar nutze ich derzeit folgendes Erdbeben Script für mein Spiel:

    GML-Quellcode

    1. // Create-Event
    2. alarm[0] = 1;
    3. alarm[1] = 3;
    4. alarm[2] = 5;
    5. // Alarm[0]
    6. view_angle[0] +=-1;
    7. // Alarm[1]
    8. view_angle[0] +=+1;
    9. // Alarm[2]
    10. view_angle[0] = 0;
    Alles anzeigen


    Nun habe ich in meinem Controller folgenden Befehl eingefügt, um die Performance zu entlasten.

    GML-Quellcode

    1. instance_deactivate_region(view_xview[0]-50,view_yview[0]-50,view_xview[0]+view_wview[0]+50,view_yview[0]+view_hview[0]+50,false,true);
    2. instance_activate_region(view_xview[0]-50,view_yview[0]-50,view_xview[0]+view_wview[0]+50,view_yview[0]+view_hview[0]+50,true);


    Jetzt dreht sich der View bei einem Erdbeben allerdings nur noch in eine Richtung, und dreht nicht mehr zurück, bzw. geht auch nicht auf 0. Was haben diese beiden Codes miteinander zu tun? Das Erdbeben-Objekt wird immer mittem im View erstellt, geht also nicht aus dem View und wird nicht deaktiviert.

    Ohne das deaktivieren der Instanzen funktioniert es wunderbar.

    Ich hoffe jemand kann mich diesbezüglich aufklären.

    Gruß,
    Shari :)
    Dieser Beitrag wurde bereits 1909 mal editiert, zuletzt von »Sharivari« (Morgen, 19:89)
  • Lass das Controller Objekt doch einfach die ganze Zeit aktiviert. Du musst dein Code nur folgendermaßen abändern:

    GML-Quellcode

    1. instance_deactivate_region(view_xview[0]-50,view_yview[0]-50,view_xview[0]+view_wview[0]+50,view_yview[0]+view_hview[0]+50,false,true);
    2. instance_activate_region(view_xview[0]-50,view_yview[0]-50,view_xview[0]+view_wview[0]+50,view_yview[0]+view_hview[0]+50,true);
    3. instance_activate_object(obj_controller);


    Das Problem tritt auf, weil du den Winkel des Views änderst und du hast die instance_deactivate/activate Funktion auf einen Winkel von 0° angepasst, da kann es schon vorkommen, dass das Controller Objekt deaktiviert wird.

    MfG

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • Das hab ich auch schon ausprobiert, dass ich das Objekt einfach manuell wieder aktivier anschließend, hat ebenfalls nicht funktioniert. Der Controller wurde nie deaktiviert, nur das Erdbeben objekt.

    Das Erdbeben hatte ja ein eigenes Objekt, jetzt hab ichs einfach so geschrieben, dass das Erdbeben auch im Controller ausgeführt wird, klappt.

    Nur bei meinem Draw Objekt geht es jetzt wieder nicht o.o

    Naja, ich werde einfach jedes Objekt manuell deaktivieren, wenn x > view_wview ist, sollte klappen.

    Aber danke :)
    Dieser Beitrag wurde bereits 1909 mal editiert, zuletzt von »Sharivari« (Morgen, 19:89)
  • Es bringt ja wohl nix, eine Region zu deaktivieren und dann alle Objekte wieder zu aktivieren.
    Außerdem:

    Sharivari schrieb:

    Nun habe ich in meinem Controller folgenden Befehl eingefügt, um die Performance zu entlasten.

    MfG

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • stimmt, da hab ich mich vertan, ich meinte natürlich -
    Warum aktivierst du nicht einfach alleObjekte wieder, die aktiv sein müssen???

    ... Anders wärs ja Käse³ - sollte aber klar sein.
    Oder gibt es da ein Problem? Die Lösung ist doch so einfach, da müsste man doch als erstes draufkommen...?