Есть ли C ++, эквивалентный COLOR. Что-нибудь похожее на Java? - PullRequest
0 голосов
/ 24 января 2012

Я пытаюсь установить «переменную цвета» в простой игре, которую я хочу написать, и я просто хочу сделать фон плитки любого цвета, который я установил, поэтому мне было интересно, смогу ли я использовать что-то вроде * 1001 java* в с ++

Ответы [ 4 ]

4 голосов
/ 24 января 2012

Это сильно зависит от платформы и фреймворка, которые вы используете.Например, когда вы используете open GL, у вас есть как минимум 4 способа хранения цветов RGB / RGBA:

int rgb[3]; // 0-255
int rgba[4]  
float rgb[3];// 0.0f - 1.0f
float rgba[4];

Так что вам придется создать свой собственный статический класс, который будет возвращать указатели направильная последовательность float / int.Когда вы создаете текстуру , у вас есть еще больше возможностей (см. Формат и тип).

Когда вы используете Windows CMD , цвета также будут работатьиначе, и вы могли бы сделать:

#define COLOR_RED 16

Итак, чтобы ответить на ваш вопрос: Нет, C ++ не предоставляет какого-либо способа для равномерной обработки цветов (потому что многие фреймворки работают с использованием C ++, и у каждого есть свои собственные цветовые структуры),но он предлагает вам много вариантов, как вы можете создать легкий доступ к цветам самостоятельно (и некоторые фреймворки действительно предоставляют эту опцию, например, Qt ).

1 голос
/ 24 января 2012

Вам лучше забыть о названиях цветов и просто использовать шестнадцатеричные значения intead:

Uint32 blue = 0x0000FF;

Или, если вам нужно использовать альфа-канал:

Uint32 blue = 0x880000FF; // ~50% transparent blue

Так проще обрабатывать цвета, особенно если вы знакомы с кодированием HTML.

0 голосов
/ 24 января 2012

Нет (во всяком случае, не в стандартных библиотеках C ++), но вы можете написать один самостоятельно.

enum Colour{ 
    RED,
    BLUE,
    GREEN
};
Colour myColour = RED; //Colour::RED is non-compliant with the C++ standard... which led to the discussion below.

Конечно, вы также можете усложнить задачу и создать компараторы для разных вещей, разделить цвет и альфа-каналы и т. Д. Черт возьми, это звучит весело! Могу сделать это сам! : P

0 голосов
/ 24 января 2012

Qt имеет класс QColor и предопределенные цвета, такие как Qt :: red.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...