public static void ColorSplosion(string Key, Color color, int spread = 5, int millDelay = 100, Color FadeTo = null) { if (FadeTo == null) { FadeTo = color; } FadeTo.R = (color.R - FadeTo.R) / spread; FadeTo.G = (color.G - FadeTo.G) / spread; FadeTo.B = (color.B - FadeTo.B) / spread; int[] KeyPos = KeyControl.GetKeyPos(Key); for (int i = 0; spread - i > 0; i++) { //for (int y=KeyPos[0]-i,x=KeyPos[1]-i; y <= KeyPos[0] + i;) //{ // KeyControl.SetKey(x, y, color); // x++; // if (x > KeyPos[1] + i) { x = KeyPos[1] - i; y++; } //} int dx = 1, dy = 0; for (int y = KeyPos[0] - i, x = KeyPos[1] - i; ;) { KeyControl.SetKey(x, y, color); x += dx; y += dy; if (x > KeyPos[1] + i) { dx = 0; dy = 1; x--; } if (y > KeyPos[0] + i) { dx = -1; dy = 0; y--; } if (x < KeyPos[1] - i) { dx = 0; dy = -1; x++; } if (y < KeyPos[0] - i) { break; } } Thread.Sleep(millDelay); color.R -= FadeTo.R; color.G -= FadeTo.G; color.B -= FadeTo.B; } }
public static void RandomKeyColors(int repeat = 100, int millDelay = 5) { KeyControl.ResetBG(); while (repeat > 0) { KeyControl.SetKey(rnd.Next(0, 21), rnd.Next(0, 6), new Color(rnd.Next(0, 255), rnd.Next(0, 255), rnd.Next(0, 255))); Thread.Sleep(millDelay); repeat--; } }
public static void ShowText(string S) { Color col = null, prevCol = null; char PrevC = 'c'; bool Clear = true; foreach (char C in S.ToUpper()) { if (Clear) { KeyControl.ResetBG(); Thread.Sleep(100); Clear = false; } while (col == prevCol) { col = CPalette[rnd.Next(0, CPalette.Length)]; } if (PrevC != 'c') { KeyControl.SetKey(PrevC.ToString(), prevCol); } if (C == ' ' || C == '\n') { Clear = true; prevCol = null; PrevC = 'c'; } else { KeyControl.SetKey(C.ToString(), Color.White); prevCol = col; PrevC = C; } Thread.Sleep(800); } KeyControl.ResetBG(); }