Kleines Partikelsytem mit der Lite Version[Neue Version,Kleines Spiel eingefügt]

    • Skript

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

    • Kleines Partikelsytem mit der Lite Version[Neue Version,Kleines Spiel eingefügt]

      (Ich weiss jeztz nicht ob das hier her gehört. Wenn nicht bitte verschieben)
      Hallo,
      ich habe ein kleines Partikelsytem gemacht. Öffnet einfach die .Gmk und spielt einweing im Objekt "obj_partikel_set" mit der Variable "global.partikel_mode" rum geb einfach mal eine Zahl zwischen 0 und 3(4 löscht die Partikel) ein. Das sind die Vorgefertigenden "Modes" . Nun könnt ihr die Variable "global.partikel.farbe" verändern.
      Variablen:

      Quellcode

      1. global.partikel_on= Soll das Partikel sytem an sein
      2. global.partikel_leben= Soll es verschwinden
      3. 0= Ja
      4. 1= Nein

      Liste der Farben:

      Quellcode

      1. 0=Zufall
      2. 1=schwarz
      3. 2=gelb
      4. 3=rot
      5. 4=grün

      MfG Henrik1235
      #edit
      Neue Version
      Erklärung angepasst
      Kleines Spiel eingefügt
      Dateien
      wupto.net/ Nicht meine Seite!
      We love Koalas.

      GM-D-Spam-o-Meter: 32%

      Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von henrik1235 ()

    • ja, naja, sieht nicht spektakulär aus, aber für manche Effekte in Minigames kann man das bestimmt irgendwie verwenden.

      Was ich blöd find, dass alles in D&D ist, wenn man GML versteht, ist das zwar nicht komplizierter, aber viel zeitaufwendiger zu lesen und so.

      Aber egal, es soll ja für Anfänger sein.
      Gruß Gamer
    • ich habs mir mal angeschaut und du hast recht,dass es kein "optik-boom" ist aber was du noch änder könntest ist,dass du für die partikel noch unterschiedliche image_alpha werte angibst,damit sie mit der zeit verschwinden.

      Wie meinst du das? Das die Partikel nacheiner Zufalls zeit verschwinden?
      Was ich blöd find, dass alles in D&D ist, wenn man GML versteht,
      ist das zwar nicht komplizierter, aber viel zeitaufwendiger zu lesen
      und so.
      Ich habe versucht es in Gml zu schreiben doch igend wie hast nicht funktioniert.
      #edit
      200 Beiträge :sauf: Party :sauf:
      wupto.net/ Nicht meine Seite!
      We love Koalas.

      GM-D-Spam-o-Meter: 32%
    • Mit GML wärs wärs übersichtlicher und platzsparender.
      Aber wichtig ist ja was rauskommt und nicht wie mans macht :thumbsup:

      ansonsten würd ich das ganze als script machen z.B. script_particle_set(farbe,mode,dir)
      dann lässt sich das in einem spiel besser verwenden
    • so ist es viel übersichtlicher(in GML) :P
      partikel_sytem_neu2.rar
      du solltest es wirklich in gml umschreiben
      Meine Spiele:
      - Mission A
      - Mission B
      - The Virus 1, 2, 3
      - The Virus 4: The Excision
      - Blur melts Snow
      - Blur melts Snow: 2nd Version
      - Cave Jumper

      Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
      In Planung: Planet Jumper(Nachfolger von Cave Jumper)
    • @Maxda: Das kamm mir auch in den sinn nur müsst ich da ne schleife machen. Mal schauen... ( Da geb es aber ziemlich Probleme mit Collisonen, es gibt doch bei der Gm Routine keine Collison)
      @sebastian733 : Nun eigenlich hab ich das anders geplannt aber egal.
      wupto.net/ Nicht meine Seite!
      We love Koalas.

      GM-D-Spam-o-Meter: 32%
    • also, ich finde, man sollte mit der Lite Version kein Partikelsystem in der Art verwenden und zwar aus zwei Gründen:

      1. verbraucht viele Ressourcen
      2. sieht nicht gut aus.

      Wenn man wirklich Partikel braucht, dann sollte man sich überlegen, die Pro Version zuzulegen, hab grad gemerkt, dass das Partikelsystem richtig geil ist.
      Gruß Gamer
    • Ich hab das Ganze mal mit Arrays gemacht und hochgeladen:
      download
      Da für jaden Partikel 5 neue Arrays erstellt werden, weiß ich nicht, ob das vieleicht Probleme gibt :| .
      Mir ist aber noch nichts aufgefallen :D .

      edit: Ach ja: mit Space erstellt man Partikel. Es gibt 2 scripte. einer zum Partikel erstellen und einen ins draw_event um die Sprites zu zeichnen (könnte man so in jedes Spiel übernehmen)

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

    • Also, ich habe mich jetzt auch mal an ein kleines Partikelsystem gesetzt. Es ist noch ausbaufähig. Kann man eigentlich ds_list im in der Liteversion vom Gm benutzten?
      Mein Partikelsystem kommt nah ab das von peyj heran, isst aber wahrscheinlich noch etwas komfortabler, oder zumindesten besser ausbaubar und wiederverwendtbar.
      Hier sind die Sripts:

      part_init
      Spoiler anzeigen

      GML-Quellcode

      1. /*
      2. argument0: Wenn das Argument true ist, werden alle Partikel, die außerhalb des Raumes sind, gelöscht.
      3. */
      4. var __remove_outside, __list_sprites, __list_sub_image, __list_direction, __list_speed, __list_x, __list_y, __id, __part_x, __part_y, __part_w, __part_h;
      5. __remove_outside= argument0; // Wenn es wahr ist, werden alle Partikel, die außerhalbe des Raumes sind gelöscht. Ansonsten müssen keine weiteren Argumente übergeben werden
      6. __part_x = 0;
      7. __part_y = 0;
      8. __part_w = room_width;
      9. __part_h = room_height;
      10. __list_sprites = ds_list_create();
      11. __list_sub_image= ds_list_create();
      12. __list_direction= ds_list_create();
      13. __list_speed = ds_list_create();
      14. __list_x = ds_list_create();
      15. __list_y = ds_list_create();
      16. __id=ds_list_create();
      17. ds_list_add(__id,__remove_outside);
      18. ds_list_add(__id,__part_x);
      19. ds_list_add(__id,__part_y);
      20. ds_list_add(__id,__part_w);
      21. ds_list_add(__id,__part_h);
      22. ds_list_add(__id,__list_sprites);
      23. ds_list_add(__id,__list_sub_image);
      24. ds_list_add(__id,__list_x);
      25. ds_list_add(__id,__list_y);
      26. ds_list_add(__id,__list_direction);
      27. ds_list_add(__id,__list_speed);
      28. return __id;
      Alles anzeigen


      draw_part
      Spoiler anzeigen

      GML-Quellcode

      1. //argument0: ID des Partikelsystems
      2. if (event_type!=ev_draw)
      3. {
      4. show_error('Das Script draw_part muss in das Draw-Event!',false)
      5. }
      6. else
      7. {
      8. var __remove_outside, __list_sprites, __list_sub_image, __list_direction, __list_speed, __list_x, __list_y, __id, __part_x, __part_y, __part_w, __part_h;
      9. __id = argument0;
      10. __remove_outside = ds_list_find_value(__id,0);
      11. __part_x = ds_list_find_value(__id,1);
      12. __part_y = ds_list_find_value(__id,2);
      13. __part_w = ds_list_find_value(__id,3);
      14. __part_h = ds_list_find_value(__id,4);
      15. __list_sprites = ds_list_find_value(__id,5);
      16. __list_sub_image = ds_list_find_value(__id,6);
      17. __list_x = ds_list_find_value(__id,7);
      18. __list_y = ds_list_find_value(__id,8);
      19. __list_direction = ds_list_find_value(__id,9);
      20. __list_speed = ds_list_find_value(__id,10);
      21. // Eine Downto-Schleife, um auch die anderen Werte nach Löschungen zu erreichen, ohne die Zählervariable zu ändern
      22. var __i;
      23. for (__i=ds_list_size(__list_sprites)-1; __i>=0; __i-=1)
      24. {
      25. var __px, __py, __pspeed, __pdirection;
      26. __px=ds_list_find_value(__list_x,__i);
      27. __py=ds_list_find_value(__list_y,__i);
      28. __pspeed=ds_list_find_value(__list_speed,__i);
      29. __pdirection=ds_list_find_value(__list_direction,__i);
      30. if ((__remove_outside) && ((__px<__part_x) || (__py<__part_y) || (__px>(__part_x+__part_w)) || (__py>(__part_y+__part_h))))
      31. {
      32. ds_list_delete(__list_sprites,__i);
      33. ds_list_delete(__list_sub_image,__i);
      34. ds_list_delete(__list_direction,__i);
      35. ds_list_delete(__list_speed,__i);
      36. ds_list_delete(__list_x,__i);
      37. ds_list_delete(__list_y,__i);
      38. }
      39. else
      40. {
      41. ds_list_replace(__list_x,__i,__px+lengthdir_x(__pspeed,__pdirection));
      42. ds_list_replace(__list_y,__i,__py+lengthdir_y(__pspeed,__pdirection));
      43. draw_sprite(ds_list_find_value(__list_sprites,__i),ds_list_find_value(__list_sub_image,__i),ds_list_find_value(__list_x,__i),ds_list_find_value(__list_y,__i));
      44. }
      45. }
      46. }
      Alles anzeigen


      part_add
      Spoiler anzeigen

      GML-Quellcode

      1. /*
      2. argument0: ID des Partikelsystems
      3. argument1: Sprite des Partikels
      4. argument2: Sub_image des Partikels
      5. argument3: X-Position des Partikels
      6. argument4: Y-Position des Partikels
      7. argument5: Geschwindigkeit des Partikels
      8. argument6: Richtung des Partikels
      9. */
      10. var __list_sprites, __list_sub_image, __list_direction, __list_speed, __list_x, __list_y, __id, __part_x, __part_y, __part_w, __part_h;
      11. __id = argument0;
      12. __list_sprites = ds_list_find_value(__id,5);
      13. __list_sub_image = ds_list_find_value(__id,6);
      14. __list_x = ds_list_find_value(__id,7);
      15. __list_y = ds_list_find_value(__id,8);
      16. __list_direction = ds_list_find_value(__id,9);
      17. __list_speed = ds_list_find_value(__id,10);
      18. ds_list_add(__list_sprites,argument1);
      19. ds_list_add(__list_sub_image,argument2);
      20. ds_list_add(__list_x,argument3);
      21. ds_list_add(__list_y,argument4);
      22. ds_list_add(__list_speed,argument5);
      23. ds_list_add(__list_direction,argument6);
      Alles anzeigen


      Viele Grüße, maxda

      P.S. part_init(remove_outside) wird aufgerufen, um ein neues Partikelsystem zu erstellen. Es wird true/false übergeben, ob die Partikel, die außerhalb des Raumes sind gelöscht werden. part_add(id, sprite, subimage, x, y, speed, direction) wird aufgerufen um Partikel zu erstellen und draw_part(id) um die Partikel zu zeichnen und die Positionen zu ändern (anhand der Geschwindigkeit und der Richtung).
    • die ds_list funktionen gehnen nicht in der Lite. Deswegen musste ich auch so viele Arrays machen anstatt es in Listen zu Packen. :P
      Es gibt aber bestimmt viele verschiedene Möglichkeiten. :D