Farben automatisch verändern (Regenbogen-Effekt)

  • GM 8

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

  • Farben automatisch verändern (Regenbogen-Effekt)

    Hey,

    gibt es eine Möglichkeit die Farben nacheinander zu ändern?
    Ich meine das so:
    Zuerst ist sie z.B. Rot, dann wird die Farbe zu Lila, dann zu Blau, dann zu Hellblau, dann zu Grün, Dann zu Gelb, dann zu Orange und wieder zu Rot.

    Ich habe es bisher so gemacht:

    GML-Quellcode

    1. Alarm:
    2. change = true
    3. if global.colrainbow = 16711680 and change = true { global.colrainbow = 16722432 ; change = false }
    4. if global.colrainbow = 16722432 and change = true { global.colrainbow = 16733440 ; change = false }
    5. if global.colrainbow = 16733440 and change = true { global.colrainbow = 16744448 ; change = false }
    6. if global.colrainbow = 16744448 and change = true { global.colrainbow = 16755200 ; change = false }
    7. ...
    8. alarm[0] = 10


    Aber das ist ziemlich aufwendig mit 36 Farben


    Der Ganze Code, kann man auch kopieren wenn man ihn braucht:
    Spoiler anzeigen
    change = true

    if global.colrainbow = 16711680 and change = true { global.colrainbow = 16722432 ; change = false }
    if global.colrainbow = 16722432 and change = true { global.colrainbow = 16733440 ; change = false }
    if global.colrainbow = 16733440 and change = true { global.colrainbow = 16744448 ; change = false }
    if global.colrainbow = 16744448 and change = true { global.colrainbow = 16755200 ; change = false }
    if global.colrainbow = 16755200 and change = true { global.colrainbow = 16766208 ; change = false }
    if global.colrainbow = 16766208 and change = true { global.colrainbow = 16776960 ; change = false }
    if global.colrainbow = 16776960 and change = true { global.colrainbow = 13958912 ; change = false }
    if global.colrainbow = 13958912 and change = true { global.colrainbow = 11206400 ; change = false }
    if global.colrainbow = 11206400 and change = true { global.colrainbow = 8453888 ; change = false }
    if global.colrainbow = 8453888 and change = true { global.colrainbow = 5635840 ; change = false }
    if global.colrainbow = 5635840 and change = true { global.colrainbow = 2817792 ; change = false }
    if global.colrainbow = 2817792 and change = true { global.colrainbow = 65280 ; change = false }
    if global.colrainbow = 65280 and change = true { global.colrainbow = 65322; change = false }
    if global.colrainbow = 65322 and change = true { global.colrainbow = 65365 ; change = false }
    if global.colrainbow = 65365 and change = true { global.colrainbow = 65408 ; change = false }
    if global.colrainbow = 65408 and change = true { global.colrainbow = 65450 ; change = false }
    if global.colrainbow = 65450 and change = true { global.colrainbow = 65492 ; change = false }
    if global.colrainbow = 65492 and change = true { global.colrainbow = 65535 ; change = false }
    if global.colrainbow = 65535 and change = true { global.colrainbow = 54527 ; change = false }
    if global.colrainbow = 54527 and change = true { global.colrainbow = 43775 ; change = false }
    if global.colrainbow = 43775 and change = true { global.colrainbow = 33023 ; change = false }
    if global.colrainbow = 33023 and change = true { global.colrainbow = 22015 ; change = false }
    if global.colrainbow = 22015 and change = true { global.colrainbow = 11263 ; change = false }
    if global.colrainbow = 11263 and change = true { global.colrainbow = 255 ; change = false }
    if global.colrainbow = 255 and change = true { global.colrainbow = 2752767 ; change = false }
    if global.colrainbow = 2752767 and change = true { global.colrainbow = 5570815 ; change = false }
    if global.colrainbow = 5570815 and change = true { global.colrainbow = 8388863 ; change = false }
    if global.colrainbow = 8388863 and change = true { global.colrainbow = 11141375 ; change = false }
    if global.colrainbow = 11141375 and change = true { global.colrainbow = 13959423 ; change = false }
    if global.colrainbow = 13959423 and change = true { global.colrainbow = 16711935 ; change = false }
    if global.colrainbow = 16711935 and change = true { global.colrainbow = 16711892 ; change = false }
    if global.colrainbow = 16711892 and change = true { global.colrainbow = 16711850 ; change = false }
    if global.colrainbow = 16711850 and change = true { global.colrainbow = 16711808 ; change = false }
    if global.colrainbow = 16711808 and change = true { global.colrainbow = 16711765 ; change = false }
    if global.colrainbow = 16711765 and change = true { global.colrainbow = 16711723 ; change = false }
    if global.colrainbow = 16711723 and change = true { global.colrainbow = 16711680 ; change = false }
    Husi012 hat mich nicht mehr in seiner Signatur, ich bin trotzdem noch fame.
  • habe sowas gerade zufällig in nem 3D tutorial gesehen :D

    da wird das so gemacht:

    GML-Quellcode

    1. //Create
    2. hue=0
    3. col=c_white

    GML-Quellcode

    1. //Step
    2. col=make_color_hsv(hue,-1,-1);
    3. hue+=1

    GML-Quellcode

    1. //Draw
    2. draw_set_color(col)
    3. //.........
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Wie wärs mit make_colour_hsv(hue, sat, val); bzw. make_colour_rgb(red, green, blue);? Damit kannst du Farbe unkompliziert wechseln und sogar flüssiger Farbwechsel einrichten.

    Wenn du z.B. Regenbogeneffekte haben willst:

    GML-Quellcode

    1. //CREATE EVENT:
    2. hue = 0
    3. color = 0
    4. //STEP EVENT:
    5. if hue <= 255{
    6. hue += 1
    7. }else{
    8. hue = 0
    9. }
    10. color = make_color_hsv(hue,-1,-1)
    Alles anzeigen


    EDIT

    oh, da war jemand schneller.
    Ihr stinkt.
  • So wie es mir scheint, hast du einen mehr oder weniger konstanten Abstand zwischen den Zahlen. Rechne dich also immer 11008 (oder so) auf deine Farbe rauf, bis zu einem Höchstpunkt. Wenn dieser erreicht ist gehst du wieder auf deinen Anfangswert.
    Ich hoff, dass funktioniert und ich hab mich verständlich ausgedrückt ;)

    Edit: Da waren gleich 2 schneller :D
    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)