Fehler beim "Spielstand" speichern.

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

  • Fehler beim "Spielstand" speichern.

    Hi Game Makers!

    Seitdem ich dabei bin, nebenbei ein Tool zu kreieren, dass ich in näherer Zukunft benutzen möchte, hab ich ständig Fragen - schliesslich soll das Programm auch brauchbar und einfach zu bedienen sein. Nun habe ich folgenden Code geschrieben, um zu speichern:

    GML-Quellcode

    1. game_save(get_save_filename('bnr',''));

    Dadruch öffnet sich ein Fenster in dem man den Filenamen und und den Filetypen wählen bzw. eingeben kann. Wenn ich jedoch in diesem Fenster auf Abbrechen klicke, kommt folgende Fehlermeldung:



    Dieser Fehler entsteht, weil versucht wurde, einen leeren String zu speichern. Kennt jemand eine Lösung, das zu umgehen?
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • einfach nach dem get_save_filename überprüfen, ob der string leer ist, wenn ja, kannst das speichern weglassen und wenn nein dann halt abspeichern.

    btw: komplex ist das nicht, oder?^^
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • GML-Quellcode

    1. var save_filename;
    2. save_filename=get_save_filename('bnr','');
    3. if (save_filename!='') {
    4. game_save(save_filename);
    5. }


    Das fragt den Dateinamen ab, prüft ob was eingegeben oder Abbrechen gedrückt wurde und speichert nur bei Eingaben.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • @WA: Danke für den Code! :headtouch: Dass mir das nicht selber eingefallen ist? Ich hätte ja bloss die Reihenfolge ändern müssen... Joa, komplex ist gut! Ich wollte einfach sicher gehen, dass es jeder versteht.. :D

    €dit: Achso nochwas.. Jetzt mach ich dasselbe um einen Teil des Bildschirms zu speichern. Wenn man direkt zB. "Bild.jpg" eingibt, speichert er es auch als JPG. Nun wollte ich als Filetyp "BMP|JPG|PNG|GIF" einfügen. Wenn man sich da dann aber beim Speichern eins aussucht und den File nur "Bild" nennt, funzt das nicht.. Woran könnte das liegen?

    €dit²: Sorry mein Fehler... Hab das völlig falsch gemacht..
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.

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

  • Ähm... das kann er doch schon lange. Jedenfalls bei Game Maker 6.1. Bei mir funzt es jedenfalls, ich bin mir eigentlich ziemlich sicher.

    Edit: Eben ausprobiert. BMP, JPG, PNG, GIF. Geht alles. Musst mal schauen, was du für ein Problem hast (,wenn du dich nicht geirrt hast).
    Dieser Beitrag ist Spam.
    | |
    | |
    \. ./
    \/

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von F.S. ()

  • Oh man... Ich habe jetzt so viel daran getestet und geändert und versucht... Das, was du mir da gegeben hast, funktioniert einfach nicht, WA. Ich nehme an, dass die Variable "save_filename", die du hier deklariert hast, zwar den Filenamen beinhaltet, nicht aber den Dateityp. Man kann zwar auswählen, ob man als BMP, JPEG oder GIF abspeichern will, jedoch wird die Datei letztenendes ohne diese Endung gespeichert. Ich weiss einfach nicht, was ich da noch machen soll. Ich hoffe, dass mir vielleicht doch noch jemand helfen kann..

    Danke schonmal!
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • GML-Quellcode

    1. var save_filename;
    2. save_filename=get_save_filename('bnr','');
    3. if (save_filename!='') {
    4. save_filename+=".sav"
    5. game_save(save_filename);
    6. }

    so einfach ne endung drannmachen. eventuell noch prüfen, ob die endung schon vom user miteingegeben wurde.

    edit: mit der funktion speicher man übrigens spielstände und keine bilder.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • Danke, Win. Das ist mir klar, bei mir sieht das auch anders aus. Ich nutze das ja, um Screenshots zu speichern. Trotzdem funktioniert deine Variante auch nicht, weil ja der User selbst wählen soll, in welchem Format er speichert.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Original von mauge
    ...weil ja der User selbst wählen soll, in welchem Format er speichert.


    Original von Windapple
    Im Spiel lesen kann man bisher nur BMP, JPG und GIF. Speichern nur BMP. In der nächsten Version gibts einige Formate mehr.


    das wird also sowiso nix
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • Da seid ihr beide falsch informiert. Ich habe es probiert. Wenn ich die Endung selbst anfüge, kann ich als BMP, GIF und JPG speichern. Und die heissen dann nicht nur so, sondern sind auch ganz normal zu gebrauchen. Das habe ich aber schonmal erwähnt.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • du kannst an ein bitmap file jede endung drannhängen, es bleibt eine bitmap file. manche grafikprogramme (unter anderem das windows bildbetrachtungsprogram) stört es nicht, wenn .gif, .jpg oder $gebräuchlichesbildformat drannsteht. das es sich um eine .bmp file handelt steht im headder der datei (die ersten zeilen) und so wird es auch behandelt, es sei denn der headder ist beschädigt bzw. zu kurz/zu lang.

    EDIT: ein hund bleibt ein hund, auch wenn man ihn zwingt "miau" zu sagen.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • Stimm auffallend. Ich wüsste trotzdem gern, wie man es nun umsetzen kann.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • zeigt dein computer bekannte dateiendungen eigentlich an? ich vermute nämlich, das die ausgeblendet dind?

    bzw. benutzt du photoshop? da müsste nämlich das parsermodul meckern.

    EDIT:
    Original von mauge
    Ich wüsste trotzdem gern, wie man es nun umsetzen kann.


    Aus der Game Maker Hilfe
    screen_save(fname) Saves a bmp image of the screen in the given filename. Useful for making screenshots.

    da steht das es als bmp gespeichert wird und man keine anderen optionen hat. also kann man das ohne eine entsprechende DLL oder selbstkonvertieren daten und headderinformationen nicht lösen.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • Oh man... Schwere Geburt. Ja, ich hab doch gemerkt, dass man nur als BMP speichern kann. Dennoch könnte man es auch für andere Dinge verwenden. Aber gut, wir sind selbst dabei, es irgendwie zum laufen zu bringen - auch wenn nunmal leider nicht viel bringt. Aber da es evtl in einer der nächsten Versionen funktioniert, kann man es dann viell dort einsetzen.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.