{warning.fa-warning} Aviso, esse texto foi escrito pensando em C#. Alguns dos métodos podem possuir nomes diferentes em rEduc/BlockEduc.
Algumas classes de apoio foram criadas para facilitar o desenvolvimento. No que antes haviam múltiplos métodos para realizar leituras diferentes de cor, agora tudo está unificado em uma só classe, e seus valores diferentes são tratados por essa classe.
A classe Color é a maior classe de apoio do simulador. Com ela é possível realizar operações com cores, verificar qual a cor mais próxima, puxar o valor de iluminação, etc.
Construtor:
// Formato: Color Color(double, double, double)
Color minhaCor = new Color(60, 128, 255);
Propriedades públicas:
double .Brightness
: Retorna a luminosidade em preto-e-branco da cor vista (de 0 a 255, onde 0 é preto e 255 é branco), podendo ser utilizado para focar em valores absolutos de luminosidade mais do que cores por ex.double .Red
: Retorna o valor de vermelho na cor, utilizando a cor construída acima, seria 60.double .Green
: Retorna o valor de verde na cor, utilizando a cor construída acima, seria 128.double .Blue
: Retorna o valor de azul na cor, utilizando a cor construída acima, seria 255.Métodos públicos:
string ToString()
: Retorna o nome da cor mais próxima, como "Vermelho", ou "Black" (dependendo do idioma do seu código);Colors Closest()
: Retorna a cor mais próxima da cor informada, ex.: Colors maisProxima = minhaCor.Closest()
. Para mais informações, ver o enumerador Colors
abaixo para ver as cores possíveis;double DistanceTo(Color)
: Retorna a distância absoluta entre duas cores. Vale ressaltar que o olho humano vê a diferença entre duas cores de forma diferente, já que algumas cores possuem mais "peso" no nosso cérebro que outras. Ex.: minhaCor.DistanceTo(new Color(255, 255, 255))
.Métodos estáticos:
Color Color.ToColor(Colors color)
: Transforma a cor no formato Colors (ver enumeração abaixo) em uma cor do tipo Color. Ex.: Color minhaNovaCor = Color.ToColor(Colors.Magenta)
;Color Color.ToColor(string color)
: Transforma a cor no formato string (depende do idioma do seu código) em Color. Ex.: Color minhaNovaCor = Color.ToColor("Verde")
.A classe Time possui métodos para gerenciamento de tempo, e poder realizar coisas como cronômetros e esperar assíncronamente um intervalo de tempo. Esses métodos são:
Propriedades estáticas:
double Time.Timestamp
: Retorna o valor que corresponde ao tempo atual em segundos, podendo ser utilizado para criar cronômetros.Métodos estáticos:
Time.Delay(double ms)
: Tarefa que espera o valor em milissegundos e pode ser utilizado utilizando a palavra-chave await
em métodos async
.A classe IO é utilizada para impressão de dados em um console virtual ou em um arquivo de texto local no computador. Vale ressaltar que o funcionamento do console e do arquivo de texto estão diferentes da forma que foram originalmente criados em 2020. Esses métodos são:
Métodos estáticos de escrita em console:
void IO.ClearPrint()
: Limpa o console;void IO.Print(string text)
: Limpa o console e escreve na primeira linha o texto informado;void IO.PrintLine(string text)
: Empurra o conteúdo do console uma linha abaixo e escreve na nova linha o texto informado.Métodos estáticos de escrita em arquivo:
void IO.ClearWrite()
: Limpa o arquivo de texto;void IO.Write(string text)
: Limpa o arquivo de texto e escreve na primeira linha o texto informado;void IO.WriteLine(string text)
: Empurra o conteúdo do arquivo de texto uma linha abaixo e escreve na nova linha o texto informado.Outros métodos/propiedades estáticas:
bool IO.Timestamp
: Booleano usado para definir se mensagens impressas terão marcação de horário (hh:mm:ss);void IO.OpenConsole()
: Método utilizado para abrir o console automaticamente atravez do código.A classe Utils possui alguns métodos matemáticos para ajudar o desenvolvimento do programador C# e rEduc. Sendo esses:
Métodos estáticos:
double Utils.Clamp(double value, double minValue, double MaxValue)
: Retorna o valor entre o mínimo e o máximo, transformando seu número nos extremos caso ele "ultrapasse-os";double Utils.Map(double value, double minA, double maxA, double minB, double maxB)
: Mapeia o valor no primeiro parâmetro que está na escala entre minA e maxA para a escala entre minB e maxB;double Utils.Random(double min, double max)
: Retorna um valor aleatório entre o minimo e o máximo informado;double Utils.SetPrecision(double value, double precision)
: Alias para Math.Round(double, int)
, retorna o mesmo double porém com o valor de casas decimais especificadas no segundo parâmetro;double Utils.Modulo(double value, double mod)
: Realiza a operação value % mod
, porém com suporte a valores negativos, já que no C# -1 % 5 = -1
, e o esperado seria -1 % 5 = 4
.Alguns enumeradores foram criados para ajudar no desenvolvimento.
Colors: Colors representam algumas cores padrão, e podem ser utilizados para algumas comparações e métodos estáticos da classe Color.
- Black
- White
- Green
- Red
- Blue
- Yellow
- Magenta
- Cyan
Notes: Notes podem ser utilizadas para tocar sons utilizando o Buzzer.
- C
- D
- E
- F
- G
- A
- B
Solfege: O solfège realiza a mesma função das notas, porém línguas que vêm do latim utilizam esse sistema em oposição ao sistema de letras visto no enumerador Notes.
- Do
- Re
- Mi
- Fa
- Sol
- La
- Si
WaveFormats: Os formatos de onda, ou WaveFormats são utilizados para tocar sons no buzzer, eles dão uma "textura" diferente ao som, podendo ser utilizados como percursão ou 'outros instrumentos'.
- Mute
- Square
- Sawtooth
- Noise