Задать вопрос

Как генерировать цвета непохожие друг на друга?

В моей игре на поле генерируются шарики разных цветов.
5dcd76e1d406a382570061.jpeg

Цвет каждому шарику задаётся с помощью простой функции:

Color RandomColor()
    {
        float r = (float)mRandom.GetRandomNumber(0, 1f);
        float g = (float)mRandom.GetRandomNumber(0, 1f);
        float b = (float)mRandom.GetRandomNumber(0, 1f);
        float a = (float)mRandom.GetRandomNumber(0.7, 1);
        return new Color(r, g, b, a);
    }


Игроки жалуются на то что иногда шарики слишком похожи по цвету и их не отличить.
5dcd779bccf4e471308672.png

Я знал об этом и считал что это добавляет игре интереса, но игроки считают иначе и их это очень бесит. Как мне изменить функцию таким образом чтобы исключить подобные ситуации? Будет ли эффективно сравнивать rgba значения шариков и в случае близких значений генерировать цвет заново?
  • Вопрос задан
  • 237 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Микропетпроджект - домашнее облако homeCloud
1) Самое примитивное - пресеты цветов. И выбирать уже из массива пресетов.
2) Попробовать использовать HSL вместо RGB. Во первых "похожие" цвета в нем легче детектить, во вторых легче получить более разные цвета - просто параметр H генерить с каким то шагом, а не весь диапазон от 0 до 1.

А зачем вы рандомите альфу? )
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
Имхо, лучше для генерации использовать HSV(hue, saturation, value), генерируя цвета с сильно отличающимися Hue
Ответ написан
Комментировать
DanielMcRon
@DanielMcRon
C# && Unity
Может сделать список, где-то ~30 цветов , и из него на рандом будет браться шарик
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы