Einen Sprite nur an der stelle zeichnen lassen wo ein anderer auch gezeichnet ist?

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

  • Einen Sprite nur an der stelle zeichnen lassen wo ein anderer auch gezeichnet ist?

    Ich habe einen Sprite und möchte das
    ein anderer nur da zu sehen ist wo sich der erste befindet.

    ZB: eine hell erleuchtete Tür und ein
    Schatten huscht vorbei oder eine Lampe durch deren Lichtschein etwas
    huscht. Ich hoffe das das verständliche Beispiele sind.

    Ausprobiert habe ich viele blend_mod
    Funktionen leider ohne Erfolg befürchte das es nur mit Shadern geht
    aber hoffe das es da eine einfachere Lösung gibt. Weil ich mich mit
    Shadern überhaupt nicht auskenne.


    Über Hilfe würde ich mich freuen!
  • Mit Surfaces könntest du einen änhlichen Effekt erzeugen.

    Du erstellst eine Surface auf der du deine Lichter zeichnen lässt, dann nimmst du dein Schattensprite und lässt es mit dem Blendmode subtract ebenfalls drauf zeichnen. Im Internet gibts viele Tutorials einfach mal Surface Light in Google suchen.

    Ich habs mal kurz ausprobiert und kam dazu:
    Husi012 hat mich nicht mehr in seiner Signatur, ich bin trotzdem noch fame.
  • Danke für die Antwort habe damit auch
    Erstmahl eine Lösung für mein Problem gefunden. Die Frage die sich
    stellt ist die Leistung ich müsste mit dieser Lösung zwischen 40-70
    unterschiedliche surface erstellen und Zeichnen das klingt erst mal
    übertrieben aber die einzelnen Effekte würden sich bei einer
    surface unschön Überlagern.

    Deswegen die Frage ob das
    Leistungsprobleme gibt Mit 70 surface.

    Und falls es zu Leistungsproblemen
    kommt es eine andere Möglichkeit gibt die Schonender ist.

    PS: bei deinem Beispiel müsste das
    Männchen nur an der stelle wo das licht ist zu Sehen sein ein
    Einfaches ausstechen reicht da leider nicht.
  • Bei Surfaces musst du vorsichtig sein. So wenige wie möglich lautet die Devise!

    Für deinen Fall brauchst du nur ein Surface, das bedeckt die View und dann drawest du Licht und Schatten drauf.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Da muss ich Aku recht geben. Ich hab grad ausversehen jeden Step ein neues Surface erstellen lassen. Mein ganzer Laptop hing. Das wäre bestimmt noch Stunden so gegangen, hätte ich nicht einfach den Ausschalter benutzt ^^
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Wie meinst du denn, dass sie sich in die Quere kommen?
    Du wolltest doch einen Schatten wenn es Licht gibt oder? Etwas anderes als 'ausschneiden' fällt mir da als einfache Lösung nicht ein. Und Schatten können sich doch nicht wirklich überlagern?
    Weshalb willst du mehrere Lichter erstellen? Du kannst das mehrere Lichter auf eine Surface zeichnen lassen.
    Husi012 hat mich nicht mehr in seiner Signatur, ich bin trotzdem noch fame.
  • Das wahr ein Beispiel ich arbeite an
    einem Script mit dynamischen Schatten das mit Hilfe eines einfachen
    draw funktioniert ich möchte diesen script aber noch durch die
    Funktion eines Glanzlichts erweitern so das ein simulierter 3D Effekt
    entsteht.

    Dafür konnte ich deine Anregung gut
    brauchen zuerst erstelle ich ein helles Sprite mahle das selbe Sprite
    auf eine Surface nur dunkler und ziehe einfach Zuhilfenahme eines
    weiteren Sprite mit einem dunklen Flecken die dunklere Surface ab so
    das an der stelle die hellere zu sehen ist ergibt ein tolles
    Glanzlicht aber sobald ich eine Surface und fiele Objekte benutze
    kommen sich die Sprites in die quere weshalb diese Lösung nur mit
    mehreren Surfaces funktionieren würde.

    Was ja schlecht wehre.
  • @ Dufner: Doch Schatten können sich überlagern, wenn es nämlich mehrere Lichtquellen gibt. Von jedem Licht gibt es einen Schatten und da wo von allen Lichtern der Schatten übereinander liegt, ist der Kernschatten.

    Zum Problem selbst kann ich aber leider nichts beitragen. Tut mir leid.
    GML lernen geht leicht :)
    1. http://www.gm-d.de/help/ (deutsch)
    2. gm-d.de/wbb/index.php/Thread/2270/ (Einsteiger-Referenz)
    3. docs.yoyogames.com/ (Hilfe auf Englisch von GM:S)