Seltsamer Surface Fehler,der....

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

  • Seltsamer Surface Fehler,der....

    ...nicht bei jedem erscheint.

    Hallo ich hab ein seltsames Problem mit meinem Spiel. Naja ich eigentlich nicht aber bis jetzt
    haben sich 2 leute beklagt dass so ne komische fehlermeldung erscheint. Die Fehlermeldung
    soll so ähnlich lauten wie: "Draw_event: Trying to use non-existing surface". Ich kann mir nicht vorstellen woran das liegt. Hier ist der code vom Surface.



    GML-Quellcode

    1. surface = surface_create(room_width,room_height)
    2. surface_set_target(surface) ;
    3. draw_clear_alpha(c_white,0) ;
    4. with (Wall_small_Shootable) {
    5. draw_sprite_ext(Spr_Shadow,-1,x-16,y+16,1,1,0,c_black,1)
    6. }
    7. with (Wall_H) {
    8. draw_sprite_ext(ShWallH,-1,x,y,1,1,0,c_black,1)
    9. }
    10. with (Wall_V) {
    11. draw_sprite_ext(ShWallV,-1,x,y,1,1,0,c_black,1)
    12. }
    13. with (Wall_Small_H) {
    14. draw_sprite_ext(ShWallSH,-1,x,y,1,1,0,c_black,1)
    15. }
    16. with (Wall_Small_V) {
    17. draw_sprite_ext(ShWallSV,-1,x,y,1,1,0,c_black,1)
    18. }
    19. with (V1) {
    20. draw_sprite_ext(ShVer,-1,x,y,1,1,0,c_black,1)
    21. }
    22. with (V2) {
    23. draw_sprite_ext(ShVer,-1,x,y,1,1,0,c_black,1)
    24. }
    25. with (V3) {
    26. draw_sprite_ext(ShVer,-1,x,y,1,1,0,c_black,1)
    27. }
    28. with (V4) {
    29. draw_sprite_ext(ShVer,-1,x,y,1,1,0,c_black,1)
    30. }
    31. surface_reset_target() ;
    Alles anzeigen


    Room End

    GML-Quellcode

    1. surface_free(surface) ;




    GML-Quellcode

    1. draw_surface_ext(surface,0,0,1,1,0,c_white,0.33)


    Bei mir funzt der code......Seltsam ?(

    © 2008 by Teamgrill Productions

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

  • Surfaces werden in der Grafikkarte als Textur behandelt. Die Größe einer Textur ist durch den Speicher der Grafikkarte und die Fähigkeiten des Grafikprozessors begrenzt, du solltest es also mit dieser nicht übertreiben.
    "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
  • Surfaces werden in der Grafikkarte als Textur behandelt. Die Größe einer Textur ist durch den Speicher der Grafikkarte und die Fähigkeiten des Grafikprozessors begrenzt, du solltest es also mit dieser nicht übertreiben.


    Ist es übertrieben wenn ich ein einziges surface habe, das so groß ist wie der raum?

    © 2008 by Teamgrill Productions
  • Die Größe des verbrauchten Speichers lässt sich relativ leicht selber berechnen.
    (Breite*Höhe*4)/(1024*1024) ergibt die verbrauchte Menge an Videospeicher.

    In deinem Fall wären das 8 bzw. 4 MB in etwa. Da dürften keine Grafikkarten der letzten Jahre Probleme mit haben, aber das gilt beileibe nicht für alle. Wenn die Leute, die sich beschwert haben, onboard Grafik benutzen, kann die maximale Größe noch eine Etage drunter hängen.

    Du kannst das Problem aber abfangen, wenn das Surface nur für irgendwelche Effekte benutzt wird und das Spiel auch ohne laufen kann und nicht abstürzen soll.
    Der Game Maker gibt nämlich -1 als Wert bei surface_create zurück, wenn es fehlgeschlagen ist. Du kannst also das Zeichnen darauf dann an eine if Bedingung knüpfen und damit den Absturz verhindern, wenn die Grafikkarte es nicht packt.
    "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

  • Der Game Maker gibt nämlich -1 als Wert bei surface_create zurück, wenn es fehlgeschlagen ist. Du kannst also das Zeichnen darauf dann an eine if Bedingung knüpfen und damit den Absturz verhindern, wenn die Grafikkarte es nicht packt.


    Das werde ich dann noch tun aber ich hab noch eine frage:
    Warum gabs bei denen keine Fehlermeldung beim target_set?

    © 2008 by Teamgrill Productions
  • Es könnte sein, das -1 intern als Bildschirmausgabe behandelt wird. Dann würde im Create auf den Bildschirm gezeichnet werden, und außerhalb des Draw Events kann man das ja nicht sehen.
    "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
  • Benutzer online 4

    4 Besucher