Background / Surfaces Problem

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

  • Background / Surfaces Problem

    So, ich mal wieder ;)
    unzwar hab ich diesesmal ein anderes Problem. Ich zeichne in meinem Spiel ein Surface der später das Spiel verdunkelt bzw. den Screen z.B. blau einfärbt.. .. wie kann man ein objekt oder background bestimmen der von dem surface nicht überdeckt wird, aber dennoch dahinter ist ? evtl. etwas schwer zu verstehen.. aber wenn ich z.B. einen sternenhimmel habe will ich das dieser zwar im hintergrund logischerweise ist, aber nicht das er verdunkelt wird, also nicht vom surface beeinflusst wird... gibts da eine möglichkeit ? hoffe ich konnte das erklären ;)
  • ich glaube er benutzt die Schattenengine, oder?
    ich hab da so eine idee...
    also ich finde jetzt nicht die gm6 von der Engine, aber es gibt ja irgendwo die abfrage, welche depth die objekte ham, die HINTER der Schattenengine (d.h. verdunkelt werden) sein sollen. Gibts da vielleicht eine möglichkein nur die objekte mit einer depth von 0 bis 1000 zu nehmen? Dann kannst du die Sterne auf, was weiß ich, z.B. 1500 stellen, sind hinter den Objekten, und leuchten trotzdem immer gleich. Ich glaube aber ncht wirklich, dass das jetzt :( ...
    Und außerdem weiß ich nicht wirklich, ob das mit den Tiles geht... welche depth DIE haben ... ?(
  • Ich glaube nicht, dass das so mit Surfaces funktioniert. Ich löse sowas grundsätzlich, indem ich statt Surfaces den Blendmode benutze. Ich kann mir dein Problem auch nur schlecht vorstellen, weil keine Details bekannt sind.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Genau da ist das Problem. Wenn ein Hintergrund (sagen wir mal ein Sternenhimmel) bei Nacht nicht verdunkelt werden soll, alle Tiles im Vordergrund aber schon, und auch alle Spielecharactäre und Objekte, wird diese Lösung nicht funktionieren, da der Sternenhimmel bereits hinter dem Tileset liegt.
    ...
  • Man könnte in diesem Fall auch die Sterne als einzelne Pixel über die Fläche zeichnen. Wenn sie mit der Umgebung kollidieren, werden sie dann einfach nicht gezeichnet.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Das ganze währe viel einfacher zu lösen wenn es so etwas wie draw_tilelayer geben würde. In dem fall könnte man die Tiles einfach ausmaskieren ~ kay, vielleicht nicht ganz einfach, aber mit hilfe der Blend Modies müßte das gehen. Ich hab ja bei meinem Spiel genau das selbe Problem, bis jetzt habe ich noch keine Lösung gefunden, welche nicht zu aufwändig ist bzw zu viele Resourcen frißt (wie die Kollisionslösung).

    Die Lösung mit heller zeichnen wird auch nicht immer funktionieren. Wenn man jetzt ein dunkles Surface benutzt um die Szene zu verdunkeln, wird ein weißer stern immer grau.
    ...
  • Und dieses einfache Skript:

    GML-Quellcode

    1. draw_sprite_ext(sprite_index,0,0,0,room_width,room_height,0,make_color_rgb(0,0,160),0.4)

    Hilft dir auch nicht weiter? Probiers ma mit nem Background also ich finde, dass das auch gut aussieht ;) Die Sterne müssten dann ne höhere Depth haben und Objekte sein.

    €dit: Als sprite müsstest du ein weißes Kästchen verwenden ;)

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Merko ()