Object (Sprite) zereißen und explodieren

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

  • Object (Sprite) zereißen und explodieren

    Hi,
    ich möchte gerne nicht immer so billige effekte für Objecte einsetzen, die garnichts mit der instance zu tun haben. Einfach effekt darüber und instance_destroy()!

    Nein! Ich Möchte dass das Object zerbricht oder explodiert. Aber mit seine sprite.
    Ich glaube es muss mir surface gehen? Aber ich kenne mich überhaubt nicht aus.

    Weiß jemand darüber bescheid?
    Bilder
    • epxm.jpg

      45,56 kB, 421×368, 239 mal angesehen
    57 6F 77 2C 20 64 61 73 20 68 61 73 74 20 64 75 20 67 61 6E 7A 20 61 6C 6C 65 69 6E 20 67 65 73 63 68 61 66 66 74 2E 20
  • mach ein paar kleinere sprites die nur teile des alten sprites sind.

    GML-Quellcode

    1. //im destroy event
    2. //broken msst du vorher im create event erstellen
    3. //teildesSprites ist das object das die zerbrochenen teile darstelt
    4. broken = instance_create(x-10+(random(20),y-10+(random(20),teildesSprites)
    5. broken.sprite_index = teil1
    6. broken.direction = random(360)
    7. broken.speed = //was du willst
    8. broken = instance_create(x-10+(random(20),y-10+(random(20),teildesSprites)
    9. broken.sprite_index = teil2
    10. broken.direction = random(360)
    11. broken.speed = //was du willst
    12. broken = instance_create(x-10+(random(20),y-10+(random(20),teildesSprites)
    13. broken.sprite_index = tei3
    14. broken.direction = random(360)
    15. broken.speed = //was du willst
    16. broken = instance_create(x-10+(random(20),y-10+(random(20),teildesSprites)
    17. broken.sprite_index = teil4
    18. broken.direction = random(360)
    19. broken.speed = //was du willst
    20. //wenn es mehrer teile des gleichen typs sein sollen mach eine schleife
    21. for (index = 0; index < 10; index = index + 1)
    22. {
    23. broken = instance_create(x-10+(random(20),y-10+(random(20),teildesSprites)
    24. broken.sprite_index = teil
    25. broken.direction = random(360)
    26. broken.speed = //was du willst
    27. }
    Alles anzeigen


    ps: das x-10+random(20) sorgt dafür das nicht alle teile an der gleichen stelle herkommen
    sie können 10 pixel nach oben,unten,links und rechts
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%

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

  • nein leider nicht hab nichts wo cih es hochladen könnte, aber sagt mir einfach was du nicht verstehst.

    ps: broken ist eine variable die du im create event initialisieren musst

    GML-Quellcode

    1. broken = 0
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%

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

  • Er will doch eben genau NICHT mit vielen kleinen Sprites arbeiten, sondern einfach, dass sein ursprüngliches Sprite halt zerrissen wird.


    Du kannst das Ganze mit folgender Funktion wunderbar lösen:

    GML-Quellcode

    1. draw_sprite_general(sprite,subimg,left,top,right,bottom,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha)





    MfG flogy

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

  • Er hat niergends gesagt das es nicht mehrere sprites sein dürfen.

    DanielGM61: Kennst du dich jetzt schon aus?


    du machst ein leeres objekt OHNE sprite.
    das nennst du "broken" oder wie auch immer du willst.

    und dann fürst du den code den ich geschrieben habe im destroy event von deinem objekt aus.
    PI 0%(IN PROGRESS)
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]
    [IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII]

    Engine : 0.0 %
    KI : 0.0 %
    Grafik : 0.0%
    Sounds: 0.0 %
    Multiplayer: 0.0%
  • Danke an Euch alle! Bigmeks erste antwort habe ich gestern gelesen. Hatte nicht geklappt. Stopp, las mich ausreden :)
    Und zwar habe ich mir gedanken gemacht. Dann hatte ich eine Idee. Und zwar mit draw_sprite_part(blah,blah,blah);.
    Gut, die sind jetzt gerade in der Mitte durchgeschnitten. Das löste ich mit einen zweiten sprite, dass einen Rißeffekt vortäuscht. Aber sprite_part hat kein image_angle.
    Also nehme ich genau das was flogy geschrieben hat. Ich muss es aber erst testen und basteln, um den riss und das spritestück immer an gleicher stelle halte. Denn die haben beide eine andere Origin (xy). Aber das dürfte evtl. mit lengthdir_xy behoben werden. Das bekomme ich schon hin. Ich muss aber langsam auf die fps achten :-).
    Aber ich habe ja auch nur einen 600Mhz Rechner. Auf einen schnellerern dürften die fps, die jetzt schon von 30 auf 20 heruntergehen, wieder frischer sein.
    ..
    57 6F 77 2C 20 64 61 73 20 68 61 73 74 20 64 75 20 67 61 6E 7A 20 61 6C 6C 65 69 6E 20 67 65 73 63 68 61 66 66 74 2E 20