Große Sprite Funktion

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

  • Große Sprite Funktion

    Hi, ich habe ein etwas längeres! Ich habe eingestellt, wenn maus links losgelassen wird, ein Skript ausgeführt wird:

    GML-Quellcode

    1. sprite = get_open_filename("*.bmp,*.gif,*.jpg|*.bmp;*.gif;*.jpg","Bilder")
    2. sprite_add("sprite",0,1,1,1,1,0,0)
    3. spr_alpha = get_string("Alpha?","0.5")
    4. sprite_set_alpha_from_sprite(spr_alpha,sprite)

    Da fehlt aber noch einiges! Außerdem, wenn der Sprite importiert wird, wird ein anderes bild Hell (hab Alpha sogar auch rausgenommen...). Es soll so sein:
    Wenn der Sprite Importiert wird, soll man die Alpha des Importierten Sprites bestimmen. Dann soll der Sprite immer zur maus_x,y wandern. Wenn ich jetzt maus links drücke, soll der Sprite abgesetzt werden. Das geht aber nicht. (Klar es geht, aber ich krieg es mit meinen Kenntnissen noch nicht hin). Ich habe schon sowas versucht:

    GML-Quellcode

    1. obj = objekt_bar
    2. obj.sprite_index = sprite

    Ich habe nämlich versucht ein Objekt draus zu machen. Aber das funzt ebenfalls nicht! Hat einer ein Skript oder eine Lösung für mich :) Es wäre wirklich nett! ;)

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

  • Ich fürchte, ich verstehe nicht ganz, worauf du hinaus willst. Du willst aus einem Sprite ein Objekt machen? Dann änder doch einfach den Sprite eines Objekt (oder besser eine Instanz eines Objektes).
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Du benutzt sprite_set_alpha_from_sprite(index,sprite) völlig falsch. Die Funktion erwartet 2 Parameter, beide in dem fall Sprites. index ist in dem Fall das zu verändernde Sprite, sprite ist in dem Fall das Sprite, dem die Alpha werte entnommen werden. Das Alpha Sprite kann hierbei komplett schwarz-weiß sein, wobei schwarz durchsichtig und weiß sichtbar ist. Eine lösung für dein Problem währe:

    GML-Quellcode

    1. var LoadSprite,LoadSpriteName,AlphaSprite,AlphaSpriteValue,TmpSurface,Color,FinalSprite;
    2. LoadSpriteName= get_open_filename("*.bmp,*.gif,*.jpg|*.bmp;*.gif;*.jpg","Bilder");
    3. LoadSprite = sprite_add("sprite",0,1,1,1,1,0,0);
    4. AlphaSpriteValue = get_string("Alpha?","0.5")
    5. TmpSurface = surface_create(sprite_get_width(LoadSprite),sprite_get_height(LoadSprite));
    6. Color = 255*AlphaSpriteValue;
    7. surface_set_target(TmpSurface);
    8. draw_clear(make_color_rgb(Color,Color,Color));
    9. surface_reset_target();
    10. AlphaSprite = sprite_create_from_surfaceTmpSurface,0,0,sprite_get_width(LoadSprite),sprite_get_height(LoadSprite),true,false,false,true,0,0);
    11. FinalSprite = sprite_set_alpha_from_sprite(AlphaSprite,LoadSprite );
    12. return FinalSprite;
    Alles anzeigen
    ...