inge9 - referência
Desenho básico
clear(string cor)
Pinta toda a tela com a cor cor.
Consulte a seção Cores para saber como especificar uma cor.
Exemplos:
clear("black"),clear("#ff0000")
fillRect(double x, double y, double w, double h, string cor)
Desenha um retângulo com w de largura e h de altura, se estendendo para a direita e para baixo a partir da posição (x, y). O retângulo é preenchido com a cor cor.
Exemplo:
fillRect(0, 0, 200, 100, "red")
drawRect(double x, double y, double w, double h, string cor)
Similar a fillRect, exceto que desenha apenas o contorno do retângulo, usando a cor cor.
drawLine(double x1, double y1, double x2, double y2, string cor)
Desenha uma linha da posição (x1, y1) até a posição (x2, y2).
drawText(string texto, double x, double y, double tam, string cor)
Escreve o texto texto na tela, na posição (x, y), com tamanho de tam pixels, na cor cor.
Exemplo:
drawText("Hello World", 8, 30, 22, "white");
Imagens
loadImage(string id, string url)
Carrega a imagem disponível no endereço url, e atribui a ela o identificador id. Não pode haver duas imagens com o mesmo id, e não pode haver outros elementos na página com o mesmo id.
Exemplo:
loadImage("panda", "https://upload.wikimedia.org/wikipedia/commons/b/bf/Farm-Fresh_emotion_face_panda.png");
waitUntilResourcesLoad()
Aguarda até que todas as imagens sejam carregadas antes de continuar a execução do programa. Normalmente é usado após uma sequência de chamadas a loadImage(id, url).
drawImage(string id, double x, double y)
Desenha a imagem identificada por id na posição (x, y). A posição se refere ao ponto onde será posicionado o canto superior esquerdo da imagem.
Exemplo:
loadImage("panda", "https://upload.wikimedia.org/wikipedia/commons/b/bf/Farm-Fresh_emotion_face_panda.png");
loadImage("hero", "https://upload.wikimedia.org/wikipedia/commons/thumb/1/11/Cc-by_new_white.svg/48px-Cc-by_new_white.svg.png");
waitUntilResourcesLoad();
drawImage("panda", 0, 0);
drawImage("panda", 50, 0);
drawImage("hero", 100, 50);
drawImageTile(string id, double x, double y, int tileWidth, int tileHeight, int tileId)
Desenha uma região da imagem identificada por id na posição (x, y). A imagem é dividida em regiões retangulares de tamanho tileWidthxtileHeight, numeradas sequencialmente a partir de 0. A numeração cresce da esquerda para a direita e de cima para baixo.
Tela
canvasWidth()
Retorna a largura da tela de desenho, do tipo double.
Exemplo:
double w = canvasWidth();
canvasHeight()
Retorna a altura da tela de desenho, do tipo double.
Exemplo:
double h = canvasHeight();
Tempo
delay(int ms)
Aguarda ms milisegundos antes de continuar a execução do programa.
Teclado
readKey()
Aguarda até o usuário pressionar uma tecla antes de continuar a execução do programa. Você pode descobrir a tecla pressionada com a função lastKey().
lastKey()
Retorna a tecla pressionada pelo usuário na ocasião da última execução de readKey(), como uma string. Consulte a seção sobre representação de teclas para mais informações.
lastKeyWas(string key)
Indica se a tecla pressionada pelo usuário na ocasião da última execução de readKey() foi a tecla key. Consulte a seção sobre representação de teclas para mais informações.
isKeyDown(string key)
Retorna um booleano (true ou false) indicando se a tecla key está pressionada. Consulte a seção sobre representação de teclas para mais informações.
clearKey(string key)
Altera o estado da tecla key para não-pressionada (mesmo que esteja sendo pressionada), de forma que as próximas chamadas a isKeyDown(key) retornarão false até o usuário pressionar a tecla novamente.
Mouse
mouseX()
Retorna a coordenada X do ponteiro do mouse (como um número inteiro).
mouseY()
Retorna a coordenada X do ponteiro do mouse (como um número inteiro).
isMouseLeftButtonDown()
Indica se o botão esquerdo do mouse está pressionado (booleano).
isMouseRightButtonDown()
Indica se o botão direito do mouse está pressionado (booleano).
clearMouseLeftButton()
Altera o estado do botão esquerdo do mouse para não-pressionado (mesmo que esteja sendo pressionado), de forma que as próximas chamadas a isMouseLeftButtonDown retornarão false até o usuário pressionar o botão novamente.
clearMouseRightButton()
Altera o estado do botão direito do mouse para não-pressionado (mesmo que esteja sendo pressionado), de forma que as próximas chamadas a isMouseRightButtonDown retornarão false até o usuário pressionar o botão novamente.
Representação de teclas
As teclas são representadas no inge9 através de um código tipo string.
Se a tecla produz um caractere ao ser pressionada em um campo de edição de texto, o código é esse caractere. Exemplos: "A", "a", "!", " ", "a". Note que uma mesma tecla pode ser representada com códigos diferentes, a depender do estado das teclas Shift, Caps Lock, entre outras.
Algumas teclas comuns:
- Teclas de navegação:
ArrowLeft,ArrowRight,ArrowUp,ArrowDown,PageUp,PageDown,Home,End - Teclas modificadoras:
Alt,Control,Shift,CapsLock - Teclas de espaço em branco:
Enter,Tab, ` ` (espaço) - Teclas de edição:
Backspace,Delete
Para outros códigos de teclas, consulte a documentação da Mozilla.
Representação de cores
As funções de desenho do inge9 aceitam qualquer especificação de cor que possa ser entendida pelo navegador. Há varias formas de representar cores:
- Nome: algumas cores podem ser representadas pelo seu nome, como
black,red,darkgreen,deepskyblue, dentre outras. Consulte a lista completa. - Notação hexadecimal,
#RRGGBB:#seguido de 6 dígitos hexadecimais (isto é, entre0ef), onde os 2 primeiros dígitos representam o componente vermelho, os 2 dígitos do meio representam o componente verde e os dois últimos representam o componente azul. Exemplos:#ff0000representa vermelho,#000000representa preto.- É possível fornecer dois dígitos hexadecimais adicionais, que representam a opacidade, onde
00representa totalmente transparente effrepresenta totalmente opaco.
- É possível fornecer dois dígitos hexadecimais adicionais, que representam a opacidade, onde
- Notação hexadecimal,
#RGB:#seguido de 3 dígitos hexadecimais (isto é, entre0ef), onde primeiro dígito representa o componente vermelho, o segundo dígito representa o componente verde e o último dígito representa o componente azul. Exemplos:#f00representa vermelho,#000representa preto.- É possível fornecer um dígito hexadecimal adicional, que representa a opacidade, onde
0representa totalmente transparente efrepresenta totalmente opaco.
- É possível fornecer um dígito hexadecimal adicional, que representa a opacidade, onde
- Notação funcional,
rgb(R, G, B, A): ondeR,G,Brepresentam os componentes vermelho, verde e azul, respectivamente. Os componentes podem ser especificados com o um inteiro entre0e255ou como uma porcentagem entre0%e100%. O componenteAé opcional, e representa a opacidade da cor. O componenteApode ser especificado como um número entre0.0e1.0ou como uma porcentagem entre0%e100%. - Notação funcional,
hsl(H, S, L, A): especifica uma cor através de seus componentes de matiz (hue,H), saturação (S) e luminosidade (L), opcionalmente com um valor de opacidade (A).Hé um número inteiro entre0e359, onde0representa a cor vermelha,120o verde e240o azul. Os valores de saturação podem ser especificados como um número entre0.0e1.0ou como uma porcentagem entre0%e100%.
Para mais informações, consulte a documentação da Mozilla sobre cores.