Screenshot für Pause Menu

  • iOS

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

  • Screenshot für Pause Menu

    Hallo Leute,

    ich würde gerne für mein Pause Menu einen screenshot vom Spiel erstellen. Ich weiß, dazu gibt es schon haufenweise Threads, aber die haben mir alle nicht geholfen.

    Ich hab es bereits mit surfaces, view_surface_id und screen_save versucht, aber das hat aus den verschiedensten Gründen nicht funktioniert...

    Jemand ne andere Idee? Ich arbeite übrigens mit Studio, da sind manche Funktionen obsolet, wie z.B. sprite_create_from_screen...


    Vielen Dank im Voraus!

    LG,
    Wolfgang
  • mach doch sprite_create_from_screen... wie du erwähnt hattest und das nimmst du bei background_add
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • husi012 schrieb:

    mach doch sprite_create_from_screen... wie du erwähnt hattest und das nimmst du bei background_add


    Er hat doch explizit geschrieben, dass die Funktion in GM Studio nicht existiert. -.-

    Neben der Möglichkeit Surfaces zu verwenden (was ein bisschen kompliziert wird bei einer Pause-Funktion)
    gäbe es auch die Möglichkeit eine globale Variable (global.pause) zu verwenden, und diese Variable dann einfach auf 1 zu stellen wenn der Pausemodus
    aktiv ist. Dann fragst du global.pause bei jedem Objekt ab, und wenn der Wert 1 ist, dann soll diese und jene Animation pausieren zB.
    Ist auch ein bisschen aufwendig, damit erzielt man finde ich aber noch die besten Ergebnisse für ein Pausemenü ...
  • Chinafreak schrieb:


    Das du schon mal das hier versucht?
    gmc.yoyogames.com/index.php?showtopic=590421

    Sonst würde ich, was RLP vorgeschlagen hat, nehmen.


    Ja das hab ich schon probiert, hat nicht so ganz funktioniert...

    Aber Danke für den Hinweis!


    RLP schrieb:



    Zitat von »husi012«

    mach doch sprite_create_from_screen... wie du erwähnt hattest und das nimmst du bei background_add

    Er hat doch explizit geschrieben, dass die Funktion in GM Studio nicht existiert. -.-

    Neben der Möglichkeit Surfaces zu verwenden (was ein bisschen kompliziert wird bei einer Pause-Funktion)
    gäbe es auch die Möglichkeit eine globale Variable (global.pause) zu verwenden, und diese Variable dann einfach auf 1 zu stellen wenn der Pausemodus
    aktiv ist. Dann fragst du global.pause bei jedem Objekt ab, und wenn der Wert 1 ist, dann soll diese und jene Animation pausieren zB.
    Ist auch ein bisschen aufwendig, damit erzielt man finde ich aber noch die besten Ergebnisse für ein Pausemenü ...



    Ja ich versuche es nun mit Surfaces. Das ist zwar etwas kompliziert, funktioniert aber ganz gut wenn man es einmal verstanden hat.

    Nur ein Problem habe ich mit Surfaces:

    Wenn ich einen Hintergrund habe und darauf ein Halb-Transparentes Sprite (z.B. einen Schatten) liegt, und ich dies dann auf einer surface abbilde mittels "view_surface_id", dann wird an der Stelle wo das Halbtransparente Sprite liegt auch der Hintergrund transparent!

    Hier ist ein Beispiel:

    Surface transparency problem.gmz

    In diesem Beispiel hab ich einen roten Kreis welcher nicht sichtbar ist (obj_circle), darüber eine gelbe Oberfläche (obj_background) und darüber ein halbtransparenter Kreis (obj_player):



    Nach drei Sekunden in alarm 0 bildet obj_surface das ganze Geschehen auf dem view mittels "view_surface_id" auf einer Surface ab. Dieses speicher ich dann in alarm 1 in einem sprite und draw das sprite dann im Draw Event. Alle anderen Objekte lass ich dann verschwinden, damit nur noch die surface zu sehen ist. Wie ihr seht ist nun das obj_background Sprite an der Stelle transparent, an der das halbtransparente Sprite liegt. Dies erkennt man daran, dass man nun obj_circle (kreis) sehen kann, welches ja hinter obj_ background liegt und daher eigentlich nicht zu sehen sein sollte:



    Wenn ich in alarm 1 bei der function "sprite_create_from_surface" removeback auf true stelle, dann passiert dies nicht, jedoch entfernt er dann den Hintergrund was ja auch blöd ist...

    Ich hoffe ihr habt verstanden wo mein Problem liegt und könnt mir irgendwie helfen!

    Vielen Dank im Voraus!


    EDIT:

    Ok ich habe jetzt die Lösung gefunden, dies muss ich in den Draw Event der Objekte setzen damit es funktioniert:

    GML-Quellcode

    1. draw_set_color_write_enable(true,true,true,false)
    2. draw_self()
    3. draw_set_color_write_enable(true,true,true,true)


    Damit ich das nicht mit jedem einzelnen Objekt machen muss hab ich folgendes versucht in obj_surface:

    GML-Quellcode

    1. with (all)
    2. {
    3. if (sprite_index!=-1 && visible=true)
    4. {
    5. draw_set_color_write_enable(true,true,true,false)
    6. draw_self()
    7. draw_set_color_write_enable(true,true,true,true)
    8. }
    9. }
    Alles anzeigen


    Funktioniert aber leider nicht! Kann mir jemand sagen wieso und wie ich es richtig mache?

    Danke!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von wolfgangkampfgarten ()

  • Benutzer online 1

    1 Besucher