RGB2HSL

Kategorie: Arithmetik
Ab Engineversion: 4.9.1.0 GWE

Beschreibung

Wandelt einen 32Bit-Farbwert in die entsprechenden Hue-, Saturation- und Lightness-Werte um wie bereits von Malprogrammen bekannt.
Die HSL Werte werden ebenfalls als int zurückgegeben und können mit GetRGBaValue() oder SplitRGBaValue() weiter verwendet werden.
Alle Werte sind von 0 bis 255 skaliert.

Syntax

int RGB2HSL (int Val);

Parameter

Val:
32Bit-Farbwert

Anmerkung

Da es in Clonk keinen Float-Datentyp gibt können die umgerechneten Werte einen geringen Fehler enthalten. (Im Regelfall nicht mehr als +1 bzw. -1)

Beispiel

#strict
#appendto CLNK

func Initialize() {
  AddEffect("VariateHue",this(),200,1,this());
  return(_inherited());
}

func FxVariateHueTimer() {
  var rgb, hsl=RGB2HSL(GetColorDw());
  var hue, sat, light;
  SplitRGBaValue(hsl, hue, sat, light);
  hue+=2;
  if(hue>255) hue=0;
  rgb=HSL2RGB(RGB(hue,sat,light));
  SetColorDw(rgb);
}
Erzeugt in jedem Clonk einen Effekt der die Farbe der Clonks Regenbogenartig variieren lässt.
Zum ausprobieren den Script am besten in einen Szenarienlokale System.c4g Ordner kopieren
Der Hue-Wert wird hier mit Absicht mit jeweils um 2 erhöht, da der geringe Fehler bei der Umrechnung sonst wirksam wird und gar nichts geschieht.
Siehe auch: HSL2RGB, RGB, SetRGBaValue
Tyron, September 2004