Pela imagem você pode notar que, de Vermelho, Verde e Azul foram extraídas outras cores como Ciano, Amarelo e Magenta, essas 3 cores vão ser extraídas outras 3 cores e assim vai. Como acabamos de entender a lógica disso tudo, vamos agora entender como funciona em códigos! Na programação é usado números para representar as cores, sendo números em base 10(decimal), em base 16(hexadecimal) ou até binário mas sempre seguindo o mesmo padrão de Vermelho, Verde e Azul. Para poder escrever uma cor devemos definir a quantidade que ela terá de tal cor, exemplo:
- Código:
00 FF 00
Neste exemplo, estamos dizendo que a nossa cor terá nada de vermelho, FF (ou 255 em decimal) e ela terá nada de vermelho.
Como você pode notar, na programação usamos frequentemente números em base 16 (hexadecimal) para facilitar a leitura do código, mas você sabe oque é números hexadecimais? Números hexadecimais são em base 16, foram feitos para facilitar nossa vida quando iremos escrever uma quantidade enorme de números, pelo fato de eles serem simples e eficazes.
- Código:
Número em decimal Número em hexadecimal
1024 400
2016 7E0
Como pode notar, teve uma pequena diferença entre o decimal e o hexadecimal. nota-se também que foram adicionado letras a esses números... vamos ao significado de cada letra:
- Código:
Número em decimal Número em hexadecimal
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 A
11 B
12 C
13 D
14 E
15 F
*Nota: 0 é o mínimo e FF é o máximo de uma determinada cor.
Agora como já sabemos como funciona números em hexadecimal, vamos agora representar cores com hexadecimal.
- Código:
Cor Em Hexadecimal Explicação
00FF00 Verde claro Essa cor contém a quantidade 0 de VERMELHO, 255(ou FF em Hex) de VERDE e 0 de AZUL
FF0000 Vermelho Forte Essa cor tem 255(ou FF em hexadecimal) de vermelho, 0 de vede e 0% de Azul
0000FF Azul Forte Agora essa cor tem 0 de Vermelho, 0 de Verde e 255 de Azul(ou FF em hexadecimal)
Nas cores acima, você pode notar oque eu expliquei até agora que no padrão RGB são 3 setores aonde temos que especificar a quantidade de uma cor que irá gerar a nossas cor. Na cor Azul forte por exemplo, especifiquei que ela terá NADA de cor vermelha, terá NADA de cor VERDE e apenas tudo cor Azul.
Em algumas linguagens como PAWN/C/C++ utilizamos um determinado prefixo para o compilador reconhecer que estamos trabalhando com hexadecimal, que é o 0x. Veja um exemplo:
Em algumas linguagens como PAWN/C/C++ utilizamos um determinado prefixo para o compilador reconhecer que estamos trabalhando com hexadecimal, que é o 0x. Veja um exemplo:
- Código:
SendClientMessage(playerid, 0x00FF00, "[Informação]: Você está registrado!");
Podemos também usar nossa cor em decimal!
- Código:
SendClientMessage(playerid, 65280, "[Informação]: Você está registrado!");
Como você pode notar, não usamos o prefixo 0x quando em base 10(decimal) pois o compilador já reconhece que estamos falando de números em base decimal.
Um pequeno script exemplificando oque aprendemos hoje sobre cores:
- Código:
#include <a_samp>
#define COR_TESTE 0x61DAE0FF
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/Teste", cmdtext, true, 10) == 0)
{
SendClientMessage(playerid, COR_TESTE,"Tutorial do zSuYaNw, Testando Cores. 2016");
return 1;
}
return 0;
}
Transparencia:
Em textdraws pode-se definir uma certa intensidade da cor, aonde podemos até deixar um textdraw totalmente claro ou totalmente forte. Veja um exemplo:
Cor branca em baixa intensidade: Cor branca com alta intensidade:
Este fenômeno de transparência pode ser feito adicionando um ultimo parâmetro em nossa cor, assim ficando 4 parâmetros: RR GG BB TT:
Veja um exemplo:
Veja um exemplo:
Aqui temos uma cor verde, eu ainda não defini nenhuma transparência para ela:
- Código:
0x00FF00
Irei deixar ela com média intensidade, igual da primeira foto em nosso exemplo acima:
- Código:
0x00FF0055
Existe várias intensidades que podemos usar, 00 sendo a mais baixa intensidade tornando a cor totalmente transparente e FF aonde ela fica em alta tensidade. Somente lembrando que essas intensidade de cores só funcionam em textdraws, ao usar em um sendclientmessage por exemplo, a estrutura da cor muda totalmente.
Tutorial por:
zSuYaNw