Maskiertes Sprite erstellen

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

    • Maskiertes Sprite erstellen

      Hi Leute ich sitze auch wieder mal an einem Problem. Ich habe gerade ein Skript erstellt, das aus der Vorgabe eines Sprites und einer Maske ein Sprite erstellen soll, dass aus der Form der Maske und dem Inhalt des Sprites bestehen soll. Nun funktioniert das ganze zwar, aber genau in die entgegengesetzte richtung, also die Maske wird herausgeschnitten. Ich müsste iwie die Farben invertieren da c_white das Sprite ja normal zeichnet. Stehe momentan auf der Leitung. Hier das Script zum Verständnis:

      GML-Quellcode

      1. //make_masked_sprite(sprite,mask)
      2. var tempsur, mask, sprite;
      3. tempsur=surface_create(sprite_get_width(argument1),sprite_get_height(argument1))
      4. surface_set_target(tempsur)
      5. draw_clear(c_white)
      6. draw_sprite_ext(argument1,0,0,0,1,1,0,c_black,1)
      7. surface_reset_target()
      8. mask=sprite_create_from_surface(tempsur,0,0,surface_get_width(tempsur),surface_get_height(tempsur),false,false,false,false,0,0)
      9. surface_free(tempsur)
      10. sprite=sprite_duplicate(argument0)
      11. sprite_set_alpha_from_sprite(sprite,mask)
      12. sprite_delete(mask)
      13. return (sprite)
      Alles anzeigen

      © 2008 by Teamgrill Productions
    • Ist jetzt nur eine Vermutung:
      Kann es sein, dass man den ganzen Surface-Kram gar nicht braucht?!
      Dann würde das nämlich etwa so aussehen:

      var Bildneu;
      Bildneu = sprite_duplicate (Bild);
      sprite_set_alpha_from_sprite (Bildneu, Maske);
      return Bildneu;


      Oder habe ich da etwas nicht ganz verstanden? (Was ich mir gut denken kann... ;) )

      Eine direkte Lösung zum Problem habe ich (bis jetzt) noch nicht gefunden!

      Mit freundlichen Grüßen,
      swffilms