[Aula 3] variáveis e operadores

Círculo que "quica" na tela.


ORIENTAÇÕES:

- Criar um programa que desenhe na tela um círculo em posição inicial aleatória.
- Utilizar como cor interna do círculo uma variável do tipo color.
- Fazer com que o círculo se mova nos eixos x e y de forma uniforme.
- Faça com que toda vez que o programa for executado o círculo se mova em velocidade diferente.
- Faça com que o círculo possa se mover para frente ou para trás, para cima ou para baixo
- Imprima no console a posição x e y do círculo a cada frame.

EXECUÇÃO:

- Define-se primeiro o tamanho da tela, na função setup, para que possa criar as variáveis seguintes com base em seu tamanho.
- Criam-se as variáveis do tipo inteiro que serão as posições iniciais do círculo e seus incrementos.
Cria-se a variável do tipo cor por meio da definição no sistema RGB. Estas foram criadas fora das funções Setup e Draw por terem características globais.
- Dentro da função Setup atribuem-se os valores para as funções Posição X (posiX), Posição Y (posiY), velocidade X (veloX) e velocidade Y (veloY) com valores randômicos ditados pela função random(), com conversão de valor de float para int. As velocidades variam de 0 a 10, enquanto as posições variam de 0 até a altura ou largura da tela.
Extra:
- Criam-se variáveis do tipo int, de nome R, G e B que serão os valores de outra variável do tipo color, de nome cor2.

- Na função Draw utiliza-se do recurso de sobreposição do plano de fundo branco para que se escondam os rastros de frames anteriores.
- Dentro do Draw cria-se um elipse, com as posições iniciais já declaradas na função Setup, executada antes da função Draw. Posições iniciais randômicas, diâmetro 50.
- Preenche o elipse com uma cor próxima ao ciano.
- Adiciona à posição da elipse o incremento de pixels da velocidade, que é randômica. Quanto mais altos forem os pixels, mais rápido a elipse irá se mover e vice-versa.
- Dá-se valor às variáveis randômicas do tipo int, de nome R, G e B para servirem de valores para outra variável color.
- Dá-se valor à variável cor2. A cada novo frame, essa cor muda.
- Indicam-se condições para o movimento da elipse:
                                  - Se a posição X for maior que a Largura menos o valor de seu raio OU se sua posição for menor que o seu raio:
      Sua velocidade se inverterá e a variável cor receberá o valor da variável cor 2
A elipse "quicará" para o lado e mudará de cor.
                                  - Se a posição Y for maior que a Altura menos o valor de seu raio OU se sua posição for menor que seu raio:
      Sua velocidade se inverterá e a variável cor receberá o calor da variável cor 2.
A elipse "quicará" para cima e mudará de cor.

- Exibe-se a posição X e Y no monitor a cada frame da repetição da função Draw até que o programa seja encerrado.

Código no Processing:





/*
- Criar um programa que desenhe na tela um círculo em posição inicial aleatória. /ok
- Utilize como cor interna do círculo uma variável do tipo color. /ok
- Faça com que o círculo se mova nos eixos x e y de forma uniforme. /ok
- Faça com que toda vez que o programa for executado o círculo se mova em velocidade
diferente. /ok
- Faça com que o círculo possa se mover para frente ou para trás, para cima ou
para baixo /ok
- Imprima no console a posição x e y do círculo a cada frame. /ok

*/

color cor, cor2;
cor = color(0,200,255);
int posiX, posiY, veloX, veloY, R,G,B;

void setup (){
size (500,500);

posiX = (int)random(25,width);
posiY = (int)random(25,height);
veloX = (int)random(10);
veloY = (int)random(10);

}




void draw(){
background (255);


fill(cor);
ellipse(posiX,posiY,50,50);
posiX = posiX + veloX;
posiY = posiY + veloY;

//extra
R = (int)random(255);
G = (int)random(255);
B = (int)random(255);
cor2 = color(R,G,B);

if (posiX > width-25 || posiX < 25) {

    veloX = -veloX;
    cor = cor2;
  }

if (posiY > height-25 || posiY < 25) {
    veloY = -veloY;
    cor = cor2;
  }




println ("Posição X = "+posiX+" Posição Y = "+posiY);

}//draw

Comentários

Postagens mais visitadas deste blog