private void Update() { //var newPosition = (Vector2)transform.position + Direction * Speed * Time.deltaTime; //rb.MovePosition(newPosition); transform.position += Time.deltaTime * Vector3.left * Speed; // helps me quickly visualize every color is working by cycling through them // DEBUG ONLY if (DebugCycleThroughColors) { timer += Time.deltaTime; if (timer > 1.0f) { timer = 0.0f; int nextColor = ((int)color) << 1; if (nextColor > 0x800) // wrap { nextColor = 0x1; } color = (EColorFlag)nextColor; Color rgb = EColorRGBHelper.FromSingleFlagToRGB(color); var spriteRenderers = GetComponentsInChildren <SpriteRenderer>(); foreach (var sprite in spriteRenderers) { sprite.color = rgb; } } } }
/// <summary> /// Convert a single EColorFlag to an RGB Color (black if 0). /// </summary> /// <param name="flag"></param> /// <returns></returns> public static Color FromSingleFlagToRGB(EColorFlag flag) { Color output = Color.black; switch (flag) { case EColorFlag.White: output = Color.white; break; case EColorFlag.Red: output = Color.red; break; case EColorFlag.Blue: output = Color.blue; break; case EColorFlag.Yellow: output = Color.yellow; break; case EColorFlag.Green: output = Color.green; break; case EColorFlag.Orange: output = new Color(1.0f, 0.75f, 0.0f); break; case EColorFlag.Pink: output = new Color(1.0f, 0.75f, 0.80f); break; case EColorFlag.Cyan: output = Color.cyan; break; case EColorFlag.Purple: output = new Color(0.73f, 0.25f, 0.73f); break; case EColorFlag.NavyBlue: output = new Color(0.22f, 0.25f, 0.57f); break; case EColorFlag.Brown: output = new Color(.90f, 0.41f, 0.11f); break; case EColorFlag.ForestGreen: output = new Color(0.23f, 0.42f, 0.15f); break; } return(output); }
public void ShuffleBindings(int totalAllowed) { //Goes through and rebinds 0-11, None is left at element 12 for (int i = 11; i > 0; i--) { int ran = Random.Range(0, i); EColorFlag temp = colors[i]; colors[i] = colors[ran]; colors[ran] = temp; } StartCoroutine(RevealKeys(totalAllowed)); if (prevSelected > -1 && prevSelected < 9) { buttons[prevSelected].gameObject.transform.GetChild(0).GetComponent <Text>().color = Color.black; } playerColor = EColorFlag.None; playerRenderer.material.SetColor("_Color", EColorRGBHelper.FromSingleFlagToRGB(playerColor)); miniPlayer.color = EColorRGBHelper.FromSingleFlagToRGB(playerColor); }
public void SetNewColor(KeyCode key, int button) { AudioSource.PlayClipAtPoint(colorChangeSounds[Random.Range(0, colorChangeSounds.Count - 1)], new Vector3(0.0f, 0.0f - 10.0f)); EColorFlag tempColor = colors[bindings[key]]; playerRenderer.material.SetColor("_Color", EColorRGBHelper.FromSingleFlagToRGB(tempColor)); miniPlayer.color = EColorRGBHelper.FromSingleFlagToRGB(tempColor); playerColor = tempColor; cooldown = cooldownMax; buttons[button].image.color = EColorRGBHelper.FromSingleFlagToRGB(tempColor); StartCoroutine(ButtonFade(key, button)); if (prevSelected != button) { if (prevSelected > -1 && prevSelected < 9) { buttons[prevSelected].gameObject.transform.GetChild(0).GetComponent <Text>().color = Color.black; } buttons[button].gameObject.transform.GetChild(0).GetComponent <Text>().color = Color.white; prevSelected = button; } }
/// <summary> /// Given a set of flags, return a random single flag from within it. /// </summary> /// <param name="flags"></param> /// <returns></returns> public static EColorFlag GetRandomFlagFromFlags(EColorFlag flags) { // straight up copied from https://stackoverflow.com/a/3002313 if (flags == 0) { return(EColorFlag.None); } var matching = Enum.GetValues(typeof(EColorFlag)) .Cast <EColorFlag>() .Where(c => ((flags & c) == c && c != 0)) .ToArray(); if (matching.Length == 0) { return(EColorFlag.None); } EColorFlag myEnum = EColorFlag.None; bool foundColor = false; while (!foundColor) { myEnum = matching[new System.Random().Next(matching.Length)]; if (myEnum == EColorFlag.None) { continue; } foundColor = true; } return(myEnum); }