Last active
May 10, 2016 14:10
-
-
Save edmorais/aa07d02cb4d65e5963b2508b36701518 to your computer and use it in GitHub Desktop.
Preenche ecrã com grelha de imagens sorteadas.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*_ ___ ___ ___ __ _ __ | |
| | / __|_ _|_ ) \/ |/ / | |
| |__\__ \| | / / () | / _ \ | |
|____|___/___/___\__/|_\___/ | |
Aula de 9/5/2016: | |
Preenche o ecrã com uma grelha de imagens sorteadas. | |
Por Eduardo Morais / FBAUP - www.eduardomorais.pt/fbaup/ | |
*/ | |
/* | |
Declarações de variáveis: | |
*/ | |
int grelha = 40; // tamanho de cada quadrícula da nossa grelha. | |
int cx = 0; | |
int cy = 0; // coordenadas X,Y de origem da quadrícula a desenhar. | |
PImage[] imagens; // declaramos um array de imagens | |
/* | |
Função setup(): | |
Executada automaticamente no início do programa: | |
*/ | |
void setup() { | |
size(800, 600); // tamanho da janela em pixels. | |
background(255); // cor de fundo (em escala de cinza). | |
strokeWeight(2); // largura do traço. | |
smooth(); // activa o 'anti-aliasing' (melhor qualidade de imagem). | |
imagens = new PImage[9]; // preparamos o array de imagens para receber 9 elementos. | |
// O ciclo FOR é uma forma mais simples de escrever o ciclo WHILE comentado abaixo. | |
// Tem três componentes (separados por ;): | |
// 1. declarar contador; 2. condição para executar/repetir; 3. incremento do contador: | |
for (int i = 0; i < imagens.length; i++) { | |
/* | |
Importante: este exemplo supõe que estamos a carregar imagens chamadas | |
"0.png", "1.png"... até "8.png" (9 imagens) presentes na pasta do sketch | |
(ou na subpasta 'data'): | |
*/ | |
imagens[i] = loadImage(i + ".png"); // carregamos cada imagem para o array de imagens: | |
} | |
/* | |
int i = 0; // 1. declarar contador | |
while (i < imagens.length) { // 2. condição para executar/repetir | |
imagens[i] = loadImage(i + ".png"); | |
i++; // 3. incremento do contador | |
} | |
*/ | |
} | |
/* | |
Função draw(): | |
Executada repetidamente a cada 'frame'/fotograma de animação. | |
*/ | |
void draw() { | |
//Se a quadrícula a desenhar tiver uma origem menor que a altura da janela: | |
if (cy < height) { | |
// ... e se a quadrícula a desenhar ainda tiver uma origem menor que a largura da janela: | |
if (cx < width) { | |
/* | |
Este único comando apresenta a imagem alojada em imagens[numero] | |
na posição cx, cy, e com a largura e a altura da grelha. | |
O número (inteiro) da imagem a mostrar é um arredondamento para baixo - floor() | |
de um número (float) à sorte entre 0 e o tamanho do array (no caso 9), exclusívé: | |
*/ | |
image(imagens[ floor( random(0, imagens.length) ) ], cx, cy, grelha, grelha); | |
/* | |
Já desenhámos na quadrícula de origem cx, cy. | |
Agora vamos avançar o cx para a próxima vez que o draw() correr... | |
*/ | |
cx += grelha; | |
} else { | |
// caso a quadrícula tenha origem fora da largura da janela, vamos para o início da fila de baixo: | |
cx = 0; | |
cy += grelha; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment