Schwarzes Bild statt des aufgenommenen Screenshots

    • GM 8

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

    • Schwarzes Bild statt des aufgenommenen Screenshots

      Hey Leute,

      ich bin auf ein Problem gestoßen wo ich einfach net weis woran es liegt bzw wie es zu beheben ist.
      Ich benutze folgenden Code hier aus dem Forum um en Screenshot zu machen.

      GML-Quellcode

      1. var saved, number, file, directory;
      2. file="Bild"; // Name der Datei (ohne die Zahl dahinter)
      3. directory="Snapshots"; // Name des Unterordners im Spieleordner
      4. saved=false; // wurde schon abgespeichert?
      5. number=1; // Nummer des Screenshots
      6. do { // Wiederhole...
      7. if (!directory_exists(working_directory+"\"+directory)) // Falls der Unterordner nicht existiert...
      8. {
      9. directory_create(working_directory+"\"+directory); // ...erstelle ihn
      10. }
      11. if (file_exists(working_directory+"\"+directory+"\"+file+string(number)+".bmp")) // Falls es die Datei mit der aktuellen Nummer schon gibt...
      12. {
      13. number+=1; // erhöhe die Nummer
      14. }
      15. else // ansonsten...
      16. {
      17. screen_save(working_directory+"\"+directory+"\"+file+string(number)+".bmp"); // ...speicher den Screenshot
      18. saved=true; // und setze saved auf "wahr"
      19. }
      20. } until (saved==true) // so lange wiederholen, bis saved "wahr" ist
      21. }
      Alles anzeigen




      Ich war zu faul mir selbst einen zu schreiben :headtouch:
      der hat bis jetzt auch wunderbar funktioniert, allerdings hab ich da nicht den ganzen Bildschirm aufgenommen sondern nur en kleinen Bereich.

      Aber wenn ich jetzt versuche meinen gesamten Fensterbereich abzuspeichern krieg ich nur en "Schwarzes Bild"
      Achja meine Räume haben unterschiedliche größen, vielleicht liegts irgendwie daran....

      Das Problem hatten anscheinend schon mehrere Spieler, allerdings hab ich noch keine Lösung dafür gefunden:
      Yoyogames --> ähnliches Problem

      Anscheinend gibt es sowas wie ein " off-by-one-pixel error " allerdings hab ich keine Ahnung was genau das ist und wie man es behebt

      Mein Game ist fast fertig, deswegen bin ich eher abgeneigt hier die datei hochzuladen,
      dachte halt es wäre en coole feature und würde manchem gamer gefallen, wenn keiner ne antwort kennt dann lass ichs halt weg
    • Die Antwort des GameMakers drauf ist, das er sich aufhängt ^^

      also es klappt leider nicht

      ich habs jetzt auch mal an nehm anderen Projekt von mir ausprobiert, aber da ist es das selbe ergebnis :(

      EDIT:

      Also mein Raum hat eine Größe von 600x600 Pixeln

      einen bereich von x1=0 y1=0 bis x2=510 y2=510 kann ich mit nehm screenshot aufnehmen sobald ich die 520 erreiche werden alle Bilder schwarz O.ô

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

    • Das ist eigenartig... in welchem Event rufst du das Skript auf?

      Außerdem, hast du schon die variante aus dem linkd a probiert? Also zuerst ein Sprite vom Bildschirm speichern und dieses Sprite dann als Datei exportieren?

      Edit: Ohh.. wieviel video-Ram hat dein PC? >_>
      Könnte nämlich dort der Fehler liegen.
      Kannst du im allgemeinen Surfaces verwenden die größer sind?

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)
    • Ich hab den code im step event, und er wird aufgerufen wenn ich die leertaste betätige
      Und screen_redraw kommt direkt vor dem code!

      Da ich grad nicht daheim bin kann ich dir die genauen daten meines PC nicht sagen,
      Was ich grad weis is:
      Intel i5 quadcore mit 3.1Ghz
      Radeon HD 7870 oder so sollte eigentlich locker reichen
      8Gb arbeitsspeicher

      Die variante hab ich noch net getestet! Mach ich aber noch
      EDIT:

      so ich hab jetzt mal das gemacht was in dem Link stand
      also ein Kästchen mit 16x16 gedrawt und dann einen Screenshot der eben dieses Kästchen komplet aufnehmen sollte
      aber das Resultat war das hier :

      siehe Anhang

      es wird nur die oberste Linie aufgenommen, der Balken rechts und Links bzw unten fehlt komplet, aber das Bild hat 16x16 Pixel


      Gruss Blayder
      Bilder
      • Bild38.jpg

        779 Byte, 16×16, 362 mal angesehen

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

    • Ich habs mit beidem Probiert, aber wie gesagt,

      es ist egal ob ich

      GML-Quellcode

      1. screen_save(working_directory+"\"+directory+"\"+file+string(number)+".bmp")
      2. oder
      3. screen_save_part(working_directory+"\"+directory+"\"+file+string(number)+".bmp",0,0,room_width,room_height)



      mache

      zeigt mir jedesmal en Schwarzen Bildschirm, nur wenn ich statt room_witdh und room_height die werte w=510 h=510 eingeb bekomm ich en Screenshot allerdings net vom ganzen Bildschirm :(

      Ich probiers jetzt nochmal indem ich mir selbst ne Funktion schreib, und wenns dann immer noch net klappt das lass ichs, schade :/


      EDIT:

      Ich habs jetzt auch mal so Probiert, das ich en Sprite vom Bildschirm erstelle und des dann speichere aber das Problem ist das selbe :(

      GML-Quellcode

      1. if(keyboard_check(vk_space)){
      2. var saved, number, file, directory;
      3. file="screenshot"; // Name der Datei (ohne die Zahl dahinter)
      4. directory="Snapshots"; // Name des Unterordners im Spieleordner
      5. saved=false; // wurde schon abgespeichert?
      6. number=0; // Nummer des Screenshots
      7. do { // Wiederhole...
      8. if (!directory_exists(working_directory+"\"+directory)) // Falls der Unterordner nicht existiert...
      9. {
      10. directory_create(working_directory+"\"+directory); // ...erstelle ihn
      11. }
      12. screen=sprite_create_from_screen(0,0,600,600,0,0,0,0)
      13. sprite_save(screen,0,working_directory+"\"+directory+"\"+file+string(number)+".bmp")
      14. saved=true; // und setze saved auf "wahr"
      15. } until (saved==true) // so lange wiederholen, bis saved "wahr" ist
      16. }
      Alles anzeigen



      Ich glaub ich lass das mit dem Screenshot jetzt, falls nochjemand ne Idee hat oder ne Lösung kennt
      darf er sie gerne hier posten =)

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

    • Hey DragonGamer & Larsi,

      danke für eure Mühe und die guten Vorschläge um mir bei meinem Problem zu helfen.

      Es gibt ne neuigkeit::

      und zwar hab ich des mit dem Screenshot heute mal auf meinem Laptop probiert, und siehe da es klappt wunderbar mit allen gängigen Variationen

      F9 / screen_save /screen_save_part / sprite_create_from_screen....

      Da stellt sich mir natürlich die frage woran es liegen könnte das es mein 5x so guter Standrechner nicht schafft das hinzukriegen.

      Möglicherweise ne Einstellungssache oder einfach en Hardware/Software fehler... keine Ahnung, zumindest weis ich jetzt das es funktioniert und ich die Option drinlassen kann und hoffe das die Leute die das unbedingt benützen möchten, auch können ^^

      Es lässt das Programm ja nicht abstürtzen sondern macht einfach keinen Screenshot.

      Danke nochmals für eure Mühen =)
    • Hm.. da sieht man mal dass auch der potenteste Rechner manchmal an kleinen Dingen scheitern kann..
      Hast du irgendwas im MSI Afterburner (sofern deine Karte diesen auch benutzt) oder in einem anderen Grafik-Treiber eingestellt/fixiert? (es gibt meines Wissens nach eine Handvoll Einstellungen die die Einstellungen eines Programms überschreiben können. AA zum Beispiel.)

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)
    • @Larsi

      Jo die Windows Druck taste funktioniert Einwandfrei

      Ich habs auch mal bei nehm anderen Game von mir Probiert, das wirklich noch net sehr weit ist das man sagen könnte da hab ich was an der Programmierung verkorkst, aber da is das Problem genau das gleiche.

      @DragonGamer

      Jo warscheinlich wirds daran liegen das irgendwas ne sauber eingestellt ist, aber wenn ich ehrlich bin hab ich grad net die Zeit und die Muse groß danach zu suchen.
      Das einzige das ich zurzeit so benutze und so ähnlich ist, ist ASRock Extreme Tuning Utility, die aber schon standartmässig bei dem Board dabeiwar, möglich das ich dort was ändern sollte.


      Trotzdem danke für eure Mühe, vielleicht soll es einfach net sein ^^

      EDIT:

      Ich habs grad bei noch einem anderen Game probiert das ne Light Engine benutzt um den Raum auf Nacht zu drimmen, dort werden Surfaces benutzt und sobald ich F9 drück, kommt die Fehlermeldung das die Surface net existiert und das Spiel stürtzt ab. Vielleicht bringt uns das der Lösung näher

      Grüßle Blayde

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

    • Dein PC hat irgendein problem. Das ist die geringste Entfernung zum Problem die wir haben :D
      Das Asrockteil gehört aber eben zum Mainboard und das Problem hat wohl eher was mit der Grafikkarte zutun... Deine Leistungsfähige Grafik muss aber definitiv ein spezielles Programm für Einstellungen dabei gehabt haben. Oder hast du etwas garkeine Grafiktreiber instaliert?

      Hmm, hat dein PC auch eine onBoard grafik? Steck mal das Display dahin um und versuchs nochmal.

      Willst du auf diese Drachen und -eier klicken?
      Sie werden sich freuen ;)
    • Ogott, ich meine mich da an etwas aus GM6-Zeiten zu erinnern:

      Option A: Virenscanner
      Viele aktiven Scanner schauen sich eine Datei schon beim Erstellen an. Das führt manchmal zu Problemen. Schalte ihn einfach mal aus.

      Option B: Grafikkartentreiber
      Einige GM-Funktionen sind nur gewrappte Low-Level-SDK-Funktionsaufrufe. Es würde mich also nicht wundern, wenn du hier Probleme mit verschiedenen Versionen von Treibern, unterschiedlichen Herstellern (Nvidia / ATI) oder auch DirectX/OpenGL-Versionen hast (ob Studio heutzutage OpenGL auf Windows benutzt? Weiß ich gar nicht...).


      Ich würde dir aber raten, auf die Funktion zu verzichten oder auf Studio umzusteigen. Der GM hatte im Zusammenspiel mit Surfaces schon immer Probleme und wie oben angedeutet, bin ich damals selber auf einige skurrile Probleme gestoßen.