colorize

  • gibt es in gml so was wie die funktion im gm-image editor namens "colorize" mit der man sprites einen anderen farbwert geben kann?
    Ich mein jetzt nicht die blend funktion, die hat einen etwas anderen effekt.
  • bei der funktion colorize, werden einfach die helligkeits werte des sprites übernommen, aber der farbwert wird durch die eingegebene zahl geändert.
    Schau dir doch einfach mal die funktion im image editor an, dann wirst du es merken.
  • Mit

    GML-Quellcode

    1. image_blend=deine_farbe

    Müsste das doch eigt. gehen 8|

    Edit:Ich weiss nicht genau, aber vllt hilft dir auch diese Funktion:

    GML-Quellcode

    1. color_get_hue(col)


    Bei colorize seht ja das selbe mit hue.
  • das funktioniert aber nicht ganz so wie ich es haben möchte...
    ich habe 4 sprites die gleich aussehen nur versch. farben haben.
    also eines ist grün, mit einem dunkelgrünen rand und einer hellgrünen mitte...usw.
    um es einfacher zu machen, benutze ich jetzt nicht 4 versch. sprites sondern eines das einfach mit den versch. farben überblendet wird.
    Im image_editor funktioniert das ganz gut, man nimmt das grüne sprite her und gibt ihm per "colorize" einen anderen farbwert, zbs. 40 für gelb.
    Es wird NUR der Farbwert übernommen, keine helligkeit oder sättigung....
    bei der funktion image_blend wird aber doch auch die helligkeit berücksichtigt und das will ich nicht.
  • Hi, es gibt diese Funktion:

    GML-Quellcode

    1. draw_sprite_ext(sprite,subimg,x,y,xscale,yscale,rot,color,alpha)


    Und mit color überblendest du die Sprites dann in versch. Farben, mit c_white wird es nicht überblendet.
    Jetzt machst du deinen Sprite in weiß und dann überblendest du es eben mit versch. Farben.

    Ist es das was du suchst??
    Gruß Gamer
  • hab ich doch gemacht...
    ich hab im anhang jetzt 2 ein bild wo 2 versch. sprites drauf sind.
    Und jetzt versucht mal dass ihr es schafft, mit hilfe von den blend-mods, das rote sprite in das grüne umzuwandeln.
    Oder ihr könnt auch einfach das sprite ein Grautönen anlegen, und dann überblenden.
    Ich auf jeden Fall hab es nicht hinbekommen, wenn ich das in Grautönen angelegte sprite mit c_red überblende siehts nicht so aus wie auf dem bild sondern es wird dunkler.
    Bilder
    • blend.JPG

      1,62 kB, 80×40, 248 mal angesehen
  • Wieso nimmst du eigentlich rot als Ausgangsfarbe? Das Ganze dürfte doch recht gut funktionieren, wenn deine Ausgangsgrafik nur aus Graustufen besteht und mittels "image_blend" eingefärbt wird.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • genau das hab ich doch auch gemacht!
    ich hab einfach das rote sprite genommen, habs mit der image-editor funktion scharz-weiß gemacht und dann mit c_red überblende.
    Rausgekommen ist aber ein viel dunkleres sprite.
  • Bei deinen Blöcken könntest du aber im Grunde auch etwas tricksen, indem du 2 Grafiken aus einem Block machst. Und zwar könntest du die Silhouette des Blocks in weiß nehmen und entsprechend einfärben. Den Glanzstreifen (auf der linken Seite und oben) könnte man anschließend einfach drauf legen. Ist natürlich alles andere als eine optimale Lösung. Ich kann dein Problem schon verstehen und bin mir sicher, dass sich dein Vorhaben durch das Anwenden des richtigen Blend Modes lösen lässt. Ich werd mal schauen, ob ich da was finde. Vielleicht findet aber in der Zwischenzeit schon wer anders eine Lösung.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • The Gamer schrieb:

    Nehm doch ein weißes Sprite, damit müsste auch das rot rauskommen, also wenn dus mit c_red überblendest.

    Sag ich ja... :)

    Ich hab vorhin nicht daran gedacht, dass man für Blend Modes logischerweise 2 Farbwerte benötigt (Source & Destination). D.h. wenn wir den Block nicht zweimal übereinander legen, wird die für den Blend Mode notwendige Ausgangsfarbe (Source) dem Hintergrund entnommen. Demnach kannst du eigentlich gleich meinen obigen Vorschlag verwenden, da du meines Wissens nicht drumherum kommst, 2 Grafiken zu überlagern. Es ist bestimmt auch anders möglich, aber mir fällt momentan nix ein. An einem gescheiten Lösungsweg wäre ich also durchaus auch interessiert.

    Im Anhang befindet sich mein oben beschriebener Vorschlag als gmk. Mit den Tasten 1 - 0 kannst du die Farben zu Testzwecken ändern. Ich hoffe, das Ergebnis ist fürs Erste zufriedenstellend.
    Dateien
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • also wenn ich richtig verstanden habe was dein problem ist, dann musst du
    im image-editor vom gamemaker das bild öffnen und dann über
    images -> Colorize Partial gehen
    darin kannst du mit dem unteren die farbe einstellen die du ändern willst
    und mit dem oberen einstellen in welche farbe du ändern willst.
    mit Precision kannst du dann noch die genauigkeit einstellen.
    bei höherem wert wird die toleranz größer und es ändern mehr abstufungen ihre farbe
  • Genau das will er aber anstellen, während das Spiel läuft. Dass es im Image Editor klappt, hat er ja schon erwähnt.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • naja, ist halt schon relativ umständlich deine lösung, aber anscheinend gibt es sowas wie colorize in gml nicht, naja pech gehabt.
    Aber trotzdem danke für die Mühe.
    So wichtig ist das ganze auch nicht für mein Spiel auch nicht...