Para a criação do relógio digital, foi desenvolvida uma função que calcula dezenas e unidades e baseadas nela seleciona e mostra a imagem correspondente a dezena e a imagem considerando a posição x e y passadas, criando a dezena na posição x passada e a unidade 100 pixels para direita, essa função é usada para mostrar as horas, os minutos e os segundos.
Resultado:
Código-Fonte:
PImage i0, i1, i2, i3, i4, i5, i6, i7, i8, i9;
void setup() {
size(800, 600);
i0 = loadImage("0.png");
i1 = loadImage("1.png");
i2 = loadImage("2.png");
i3 = loadImage("3.png");
i4 = loadImage("4.png");
i5 = loadImage("5.png");
i6 = loadImage("6.png");
i7 = loadImage("7.png");
i8 = loadImage("8.png");
i9 = loadImage("9.png");
}
void draw() {
println(hour()+":"+minute()+":"+second());
calculaDU(hour(),width-750,height/2-54);
calculaDU(minute(),width-500,height/2-54);
calculaDU(second(),width-250,height/2-54);
fill(0);
ellipse(width-525,height/2-20,20,20);
ellipse(width-525,height/2+20,20,20);
ellipse(width-275,height/2-20,20,20);
ellipse(width-275,height/2+20,20,20);
}
void calculaDU(int valor, int X, int Y) {
int dezena = valor/10;
int unidade = valor%10;
//println("dezena: "+dezena+" unidade: "+unidade);
switch(dezena) {
case 0:
image(i0, X, Y);
break;
case 1:
image(i1, X, Y);
break;
case 2:
image(i2, X, Y);
break;
case 3:
image(i3, X, Y);
break;
case 4:
image(i4, X, Y);
break;
case 5:
image(i5, X, Y);
break;
case 6:
image(i6, X, Y);
break;
case 7:
image(i7, X, Y);
break;
case 8:
image(i8, X, Y);
break;
case 9:
image(i9, X, Y);
break;
}
switch(unidade) {
case 0:
image(i0, X+100, Y);
break;
case 1:
image(i1, X+100, Y);
break;
case 2:
image(i2, X+100, Y);
break;
case 3:
image(i3, X+100, Y);
break;
case 4:
image(i4, X+100, Y);
break;
case 5:
image(i5, X+100, Y);
break;
case 6:
image(i6, X+100, Y);
break;
case 7:
image(i7, X+100, Y);
break;
case 8:
image(i8, X+100, Y);
break;
case 9:
image(i9, X+100, Y);
break;
}
}

Nenhum comentário:
Postar um comentário