Lagg Problem mit Partikeln

  • GM 7

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

  • Lagg Problem mit Partikeln

    Hi, ich hab in meinem Spiel ein paar Meteoren und dass die noch realistischer sind hab ich denen mit nem Partikelsystem einen Schweif gemacht.
    Die Meteoren fliegen durchs Bild und wenn sie auserhalb des Bildes sind, dann werden sie zerstört und mit ihnen die Partikel.
    Jetzt läuft alles andere sehr gut bei dem Spiel, aber sobald 7 oder 8 Meteoren im Bild sind, fängt es dermaßen an zu laggen und mein Pc ist zwar nicht der neuste, aber schlecht ist er nicht, ich denke, dass es am Partikelsystem liegt, weil in einem anderen Level fliegt ein anderes Objekt aufwändiger durchs Bild und da sind auch mehr wie 10 Instanzen im Bild, jedoch haben die keine Partikel.
    Könnt ihr euch mal anschauen wie man das verbessern kann.

    Vllt kann man den Schweif ja auch anders machen, also nicht mit Partikeln, jedoch fällt mir keine gescheite Lösung ein, hier mal das Partikelsystem:

    Spoiler anzeigen

    GML-Quellcode

    1. sname = part_system_create();
    2. particle = part_type_create();
    3. part_type_sprite(particle,sprite_index,1,0,0);
    4. part_type_direction(particle,0,0,0,0);
    5. part_type_speed(particle,0,0,0,0);
    6. part_type_gravity(particle,0,270);
    7. part_type_color_mix(particle,c_red,c_orange);
    8. part_type_orientation(particle,0,0,0,0,1)
    9. part_type_alpha3(particle,0.3,0.15,0);
    10. part_type_blend(particle,1)
    11. part_type_life(particle,30,30)
    12. part_type_size(particle,1,1,0,0);
    13. part_system_depth(sname,10000000000)
    14. emitter = part_emitter_create(sname)
    15. part_emitter_region(sname,emitter,x,x,y,y,0,0);
    16. part_emitter_burst(sname,emitter,particle,1);
    Alles anzeigen


    BITTE NICHT WEITERVERWENDEN
    Gruß Gamer
  • Ein Partikelsystem verbraucht sehr viel Speicher.
    Wenn es wierklich nur um einen Schweif geht, kannst du das auch mit dem Effekt System machen.
    Meines Wissens nach müsste es damit besser gehen.
    Ich habe keine Signatur, weil ich faul bin und immoment keinen bock zum schreiben habe...
  • kann es sein, dass du jeden step das partikel system neu erstellst?!

    schmeiss den code ins create event:

    GML-Quellcode

    1. sname = part_system_create();
    2. particle = part_type_create();
    3. part_type_sprite(particle,sprite_index,1,0,0);
    4. part_type_direction(particle,0,0,0,0);
    5. part_type_speed(particle,0,0,0,0);
    6. part_type_gravity(particle,0,270);
    7. part_type_color_mix(particle,c_red,c_orange);
    8. part_type_orientation(particle,0,0,0,0,1)
    9. part_type_alpha3(particle,0.3,0.15,0);
    10. part_type_blend(particle,1)
    11. part_type_life(particle,30,30)
    12. part_type_size(particle,1,1,0,0);
    13. part_system_depth(sname,10000000000)
    14. emitter = part_emitter_create(sname)
    Alles anzeigen


    nur der rest muss im step oder wo auch immer ausgeführt werden!
    "das war meine letzte flamewar PM an dich ."
  • SNAKE schrieb:

    Ein Partikelsystem verbraucht sehr viel Speicher.
    Wenn es wierklich nur um einen Schweif geht, kannst du das auch mit dem Effekt System machen.
    Meines Wissens nach müsste es damit besser gehen.

    Soweit ich weiß, ist das von dir benannte "Effektsystem" nur eine vereinfachte Version des Partikelsystems. Es basiert auf der gleichen Technik und dürfte somit nicht schneller sein.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Nein das was ich an Code reingestellt habe ist alles Initialisierung! Das kann ins Creat Event! Nur die letzten 2 Zeilen von deinem Code müssen regelmässig ausgeführt werden.
    "das war meine letzte flamewar PM an dich ."
  • hey vielen Dank.

    Jetzt laggts noch nichtmal bei 40 Stück, aber so viel werdens sowieso nicht auf einmal. :D



    edit: hab grad ausgerechnet, dass es wahrscheinlich 30 Instanzen werden, aber das verteilt auf 20 Sekunden, also bis die letzten erstellt werden, sind die ersten schon wieder gelöscht. :thumbsup:
    Gruß Gamer
  • eigentlich könntest du das system sogar global machen mit global.sname =..
    und wenn alle instanzen die gleichen partikel benützen kannst du particle auch global machen, das spart nochmal ressourcen ein denk ich
    "das war meine letzte flamewar PM an dich ."