Dateien extern laden funktioniert nicht

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

  • Dateien extern laden funktioniert nicht

    Folgendes Problem ...

    Es existieren zwei leere Sprites und zwei Objekte, denen diese Sprites später zugewiesen werden. Ein Spiel-Start-Objekt, das ganz am Anfang alles steuert, soll für die beiden Sprites je eine externe Datei laden. Doch genau da hakt es. Die externe Datei scheint nicht geladen zu werden.

    Hier der Code:

    obj_room_start
    :event_create:

    GML-Quellcode

    1. sprite_replace(spr_spieler,"gfx\balken_spieler.png",1,0,1,0,0);
    2. sprite_replace(spr_gegner,"gfx\balken_gegner.png",1,0,1,0,0);
    3. instance_create(0,room_height/2,obj_spieler);


    Was mache ich falsch?

    Lg
    Michael
  • Hier, was du alles falsch machst:

    1.
    Doch genau da hakt es. Die externe Datei scheint nicht geladen zu werden.

    Bitte beschreibe deine Probleme endlich mal anständig. Dir muss doch wohl klar sein, dass genau das der Knackpunkt ist: was genau passiert (Fehlermeldung o.Ä.), oder passiert denn eben nicht (Sprite ist einfach unsichtbar)?

    2.
    Relevante Teile deines Codes fehlen, z.B. der Draw-Code oder ob du dir überhaupt sicher bist, dass der Code zum Laden und Erstellen der Objekte überhaupt ausgeführt wird (mal show_message eingefügt? Mal anstatt den leeren Sprites Platzhalter benutzt und geschaut ob du diese siehst?).

    3.
    Darüber hinaus ist externes Laden von Sprites und Backgrounds in Game Maker Studio prinzipiell erstmal keine gute Idee, da extern geladene Sprites meines Wissens nach immer auf einer eigenen Texture Page landen. Wenn du es nicht aufgrund der Flexibilität machst, würde ich dir raten es einfach zu lassen (wobei ich hier ehrlich gesagt keine Quelle mehr finden kann, weswegen ich mich auch gerne eines besseren belehren lassen würde - ich bin mir aber sicher, dass es irgendwann einmal so war).

    4.
    Der richtige Weg um Dateien extern so zu laden ist, sie als Included Files hinzuzufügen und dann mittels dem working_directory Pfad zu laden. Auf diese Weise werden die Dateien auch auf verschiedenen Plattformen korrekt geladen, ohne dass du dann noch großartig dran rumbasteln musst. Hierzu ein paar Posts von Russel, außerdem würde ich dir mal raten dich mit dem File System des Game Makers vertraut zu machen. Ich bezweifle nämlich, dass deine Dateien an einem sinnvollen Ort liegen, aber wer weiß - hast du ja auch nicht gesagt.


    Da ich davon ausgehe, dass es wieder so endet wie das letzte mal, schreibe ich es hier einmal explizit hin: arbeite Punkt für Punkt ab, und du wirst früher oder später zu einer Lösung kommen - entweder durch Selbsterkenntnis oder dadurch, dass du dein Problem hier ausführlicher beschreibst. Und nein, dir wird (hoffentlich) niemand über Teamviewer dabei helfen. Es ist nämlich dein Problem.
  • Ich habe die Dateien in einem Ordner (gfx) im Ordner des Projektes. Also müsste der Code eigentlich funktionieren.

    Hier alle Events:

    obj_room_start
    Create Event :event_create:

    GML-Quellcode

    1. sprite_replace(spr_spieler,"\gfx\balken_spieler.png",1,0,1,0,0);
    2. sprite_replace(spr_gegner,"gfx\balken_gegner.png",1,0,1,0,0);
    3. instance_create(0,room_height/2,obj_spieler);



    obj_spieler
    Create Event
    :event_create:

    GML-Quellcode

    1. sprite_index = spr_spieler;


    Draw Event :event_draw:

    GML-Quellcode

    1. draw_sprite(spr_spieler,1,0,0);



    Das ist alles, was ich bis jetzt habe.
    Nach Ausprobieren, ob die Dateien existieren, kam heraus, dass diese fehlen. Der GameMaker startet das Spiel sowieso in einem seltsamen Pfad (Working Directory - siehe Anhang).

    Ich hoffe, jemand kann mir weiterhelfen. Ich möchte die Ressourcen unbedingt extern laden.

    Lg
    Michael
    Bilder
    • workingdirectory.png

      47,51 kB, 1.920×1.080, 381 mal angesehen
  • Nach Ausprobieren, ob die Dateien existieren, kam heraus, dass diese fehlen. Der GameMaker startet das Spiel sowieso in einem seltsamen Pfad (Working Directory - siehe Anhang).

    Ich hoffe, jemand kann mir weiterhelfen. Ich möchte die Ressourcen unbedingt extern laden.

    4.Der richtige Weg um Dateien extern so zu laden ist, sie als Included Files hinzuzufügen und dann mittels dem working_directory Pfad zu laden. Auf diese Weise werden die Dateien auch auf verschiedenen Plattformen korrekt geladen, ohne dass du dann noch großartig dran rumbasteln musst. Hierzu ein paar Posts von Russel, außerdem würde ich dir mal raten dich mit dem File System des Game Makers vertraut zu machen. Ich bezweifle nämlich, dass deine Dateien an einem sinnvollen Ort liegen, aber wer weiß - hast du ja auch nicht gesagt.


    EDIT: Hier noch ein älterer Thread zu dem Thema.

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


  • Danke für den Link. Da mir viel Grundwissen fehlt, da ich immer nur nach dem Suche was ich gerade benötige, kann ich somit wieder eine Lücke schließen.


    ghost schrieb:

    arbeite Punkt für Punkt ab, und du wirst früher oder später zu einer Lösung kommen

    Definitiv die einfachste und schnellste Methode um die meisten Fehler zu finden.
    aber zum Glück macht das nicht jeder, denn dann würd ich nicht so viel nebenbei mitbekommen was mich wieder auf neue Ideen bringt. :)
  • Balls of Steel schrieb:

    aber zum Glück macht das nicht jeder, denn dann würd ich nicht so viel nebenbei mitbekommen was mich wieder auf neue Ideen bringt.


    Mir ging es hier auch eher darum, dass Michael nicht meinen ganzen Post liest. Was hier auch wieder geschehen ist. Experimentieren ist natürlich eine feine Sache, beim debuggen würde ich aber generell eher methodisch vorgehen. ^^