Objekte deaktivieren

  • GM 8

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

  • Objekte deaktivieren

    hi Leute...

    ich mache doch am Spiel "Robot" weiter, und ich arbeite gerade an einem neuen und auch wichtigen Bestandteil für mein Spiel.
    Nämlich: Wasser. Das wasser hat ne engine wie bei Minecraft...

    So, nun ist meine map aber richtig groß (Wer das Spiel kennt weiß warum)... damit das Spiel nich abkackt muss ich instancen deaktivieren.
    und wenn ich nun folgenden code schreibe:

    GML-Quellcode

    1. instance_activate_all();
    2. instance_deactivate_region(view_xview[0],view_yview[0],view_wview[0],view_hview[0],false,true);
    3. instance_activate_object(obj_engine);
    4. instance_activate_object(obj_spieler);
    5. instance_activate_object(obj_wasser);


    Dann ist die Wasser mit der Engine eingeschalten. Was heißt, wenn ich nicht in der nähe bin vom Wasser, breitet es sich überall aus, weil ja die anderen objekte deaktiviert wurden.

    Wenn ich das Wasser ebenfalls deaktivieren lasse, dann fangt das Wasser wieder neu zu fließen an...

    Was kann ich tun? ;)
    mfg Salmi
  • Wie wärs wenn du die Physik (vermutlich gravitation) der Wasserobjekte die ausserhalb des sichtbereiches liegen deaktivierst?
    Weiß weder wie das Wasser in Minecraft funktioniert, noch wie es bei dir ausschaut, deswegen kann ich auch nicht abschätzen wo dein Problem liegt.
  • ne keine Gravitation... Es wird immer geprüft, ob ein platz links, rechts oder halt unterhalb frei ist. Wenn einer ist, dann kommt dort Wasser (Das objekt) hin. Und da die Objekte wenn ich nicht im view bin deaktiviert sind, hat das wasser unendliches laufen^^
    mfg Salmi
  • Was sind das denn fuer Objekte, die unter dem Wasser nicht seien sollen. Einfache Kollisionsobjekte oder wie? Wenn das so ist, dann koenntest du ja den merge-Skript von MasterXY benutzen. Dann werden deine grounds bzw. walls zusammengefasst und diese kannst du dann wieder aktivieren (sollte dann nicht so viel mehr Performance fressen).

    MfG

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • hmm.. nee ich hab viele steinarten, aber alle in einem objekt. Das objekt ist solid, und direkt haben die kein kollisions event.
    und wie die Lösung auf mein Problem mit MasterXY s script zu lösen ist, weiß ich leider nicht xD... Ich glaube auch kaum das es das auch wirklich ist^^
    mfg Salmi
  • Da sollte doch eine if Abfrage reichen:

    GML-Quellcode

    1. if (x>view_xview-64 and x<view_xview+view_wview+64 and y>view_yview-64 and y<view_yview+view_hview+64) //Wenn sich das Objekt innerhalb des views bzw. nicht weiter als 64px außerhalb befindet
    2. {
    3. //Hier dein Code für die Ausbreitung des Wassers
    4. }
  • hmm... danke, aber... das geht zwar größtenteils, aber manchmal wird weitergeflossen...

    Kann ich nicht einfach die position des Wassers speichern (und sprite index) und wenns nicht im view ist ebenfalls deaktivieren, und wenns wieder in den view kommt aktivieren?

    Wenn ja... wie ? ich hab mich mit sowas noch nich befasst :s
    mfg Salmi