static Bitmap GetColorLayerOfImage(Bitmap image, ColorLayer whichLayer) { var layer = new Bitmap(image.Width, image.Height); for (int y = 0; y < image.Height; y++) { for (int x = 0; x < image.Width; x++) { var originalPixelColor = image.GetPixel(x, y); var colorScale = 0; switch (whichLayer) { case ColorLayer.Red: colorScale = originalPixelColor.R; break; case ColorLayer.Green: colorScale = originalPixelColor.G; break; case ColorLayer.Blue: colorScale = originalPixelColor.B; break; } colorScale = 255 - colorScale; layer.SetPixel(x, y, Color.FromArgb(colorScale, colorScale, colorScale)); //var newR = whichLayer == ColorLayer.Red ? 0 : (255 - originalPixelColor.R); //var newG = whichLayer == ColorLayer.Green ? 0 : (255 - originalPixelColor.G); //var newB = whichLayer == ColorLayer.Blue ? 0 : (255 - originalPixelColor.B); //layer.SetPixel(x, y, Color.FromArgb(newR, newG, newB)); } } return(layer); }
IEnumerator FillColorRoutine(ColorLayer layer) { if (layer != null) { layer.targetRenderer.enabled = true; layer.inlayFinished = true; yield return(null); } }
// level complete private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "Player") { ColorLayer color = GetComponent <ColorLayer>(); if (skip_goal) { AnalyticsEvent.Custom("level_skipped", new Dictionary <string, object> { { "build_index", currentLevel.RuntimeValue }, { "scene_name", currentScene.name }, { "deaths", deaths }, { "pallet", color.pallet.name }, { "time_to_clear", Time.timeSinceLevelLoad } }); } else { AnalyticsEvent.Custom("goal_reached", new Dictionary <string, object> { { "build_index", currentLevel.RuntimeValue }, { "scene_name", currentScene.name }, { "deaths", deaths }, { "pallet", color.pallet.name }, { "time_to_clear", Time.timeSinceLevelLoad } }); } level.average_cleartime = (level.average_cleartime + Time.timeSinceLevelLoad) / 2; level.average_deaths = (level.average_deaths + deaths) / 2; if (currentScene.buildIndex + 1 < SceneManager.sceneCountInBuildSettings) { SceneManager.LoadScene(playlist.NextLevel(currentLevel.RuntimeValue + 1)); } else { SceneManager.LoadScene(0); } } }
// Use this for initialization void Start() { layer = GetComponent <ColorLayer>(); text = GetComponent <TextMeshProUGUI>(); }