Eine Flut von Partikeln

  • GM 8

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

  • Eine Flut von Partikeln

    Ich habe den einen oder anderen Partikeleffekt. So ein Partikel sollte bei mir nicht lange leben, allerdings liegt die Betonung auf "sollte". Wenn ich von einem Level zum nächsten gehe wird das Spiel immer langsamer, aber nur, wenn die Partikel an sind. Dabei habe ich eine Speicherauslastung von < 100 MB und die EXE belegt höchstens 15% des Prozessors. Aber egal wie ich den Partikel vernichte, der Rechner geht in die Knie.

    Mein Code bei :action_destroy: sieht schon so aus:
    Spoiler anzeigen

    GML-Quellcode

    1. part_system_clear(emitter);
    2. part_emitter_clear(particle,emitter);
    3. part_emitter_destroy(particle,emitter);
    4. part_emitter_destroy_all(particle);


    Der Rest vom Partikel-Code:

    :event_create:
    Spoiler anzeigen

    GML-Quellcode

    1. alarm[0]=2 * room_speed / 30
    2. particle = part_system_create();
    3. particlep = part_type_create();
    4. part_system_depth(particle,-1000000);
    5. part_type_life(particlep,6.5,10);
    6. part_type_shape(particlep,7);
    7. part_type_size(particlep,0.10,0.22,0.01,0);
    8. part_type_scale(particlep,0.80,0.80);
    9. part_type_speed(particlep,4,3.50,0,0);
    10. part_type_gravity(particlep,0.20,270);
    11. part_type_color3(particlep,make_color_rgb(255,28.05,28.05),make_color_rgb(255,186.15,43.35),make_color_rgb(255,255,255));
    12. part_type_orientation(particlep,0,0,0,0,1);
    13. part_type_direction(particlep,270,270,0,0);
    14. part_type_alpha3(particlep,0.90,0.92,0.91);
    15. part_type_blend(particlep,1);
    16. emitter = part_emitter_create(particle)
    17. part_emitter_region(particlep,emitter,x-8,x+0,y-6,y+0,0,0)
    18. part_emitter_burst(particlep,emitter,particlep,1)
    Alles anzeigen


    :event_timer:
    Spoiler anzeigen

    GML-Quellcode

    1. :action_destroy:


    :event_step:
    Spoiler anzeigen

    GML-Quellcode

    1. depth = -y
    2. part_emitter_region(particlep,emitter,x-0,x+0,y-0,y+0,0,0)
    3. part_emitter_burst(particlep,emitter,particlep,1)
  • Das destroy-event wird ausschließlch dann ausgelöst wenn man der Instanz direkt den Befehl gibt zerstört zu werden. Somit werden die Partikel bei Raumverlassen nicht zerstört. D.h. wenn du den Raum verlässt bleiben die Emitter trotzdem da. Versuch mal den Code aus dem destroy event zusätzlich in ein other-->room-end event zu kopieren. Dann sollte dieser Fehler zumindest eliminiert sein. Bin mir aber nicht wirklich sicher ob das Problem hier liegt da Emitter höchstens den Speicher auslasten.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • DragonGamer schrieb:

    Das destroy-event wird ausschließlch dann ausgelöst wenn man der Instanz direkt den Befehl gibt zerstört zu werden.
    Genau das mache ich ja mit

    GML-Quellcode

    1. alarm[0]=2 * room_speed / 30

    DragonGamer schrieb:

    Bin mir aber nicht wirklich sicher ob das Problem hier liegt da Emitter höchstens den Speicher auslasten.

    Eben das gibt mir auch zu denken. Der Speicher ist konstant niedrig, egal ob die Partikel an sind oder aus. Wenn sie aber an sind, geht bereits in Level 2 die Ruckeorgie los. Deinen Tipp teste ich dennoch, schaden kann es nichts.

    Edit: hat leider nichts gebracht.

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

  • Die Sache war dass du ja meintest dass das Problem nur nach wechseln der Level auftrat. Auch alarm-events werden sofort bendet wenn man spontan den Raum verlässt.

    Wie werden diese Instanzen mit diesem Code denn erstellt? Kommen sie mehrfach im Raum vor?

    EDIT:
    Du hast in den "part_emitter_"-Funktionen ein falsches Argument gegeben! Das erste Argument muss immer das Partikel-System sein, also "particle", nicht "particlep".

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Also dann bin ich mit meinem Latein (als ob ich Latein könnte...) am ende =(
    Wie stark ist dein Computer denn?
    Notfalls schick mal eine verienfachte Version deiner Projektdatei zum testen...

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Benutzer online 2

    2 Besucher