quinta-feira, 13 de outubro de 2016

Atividade 10 - Mover círculo do centro até qualquer lugar indicado na mesma velocidade.

Mantendo-se sempre uma mesma velocidade de deslocamento, criar uma aplicação que move um círculo, inicialmente no centro da tela, para qualquer posição clicada pelo mouse.

Primeiro defini a velocidade fixa de 150, e posicionei a bola no central da tela (metade da altura e metade da largura). Criei um estado clique para verificar se é verdadeiro ou falso. Dentro da função mouseClicked() caso o clique o estado é ativado, quando é solto o clique fica falso e armazeno em variáveis as posições x e y através da função "pmouseX" e "pmouseY".

Quando clique é ativado a bola fica da cor do fundo (ou seja desaparece) e chamamos a função movimento. Essa função a nova bola vai aparecer em branco e vai ativar o movimento dela até o local do clique. Nela colocamos como parâmetro a posição atual da bola, a posição do clique, e a velocidade fixa. É criada uma variável auxiliar para controlar o movimento de acordo com a velocidade, i é inicializado em 0 e pode ir até 1, enquanto i for menor que zero i será: i=i+(1.0/velocidade); É só colocar esse i multiplicando a diferença do x e y final (clique) e o x e y inicial (centro). O código fica assim:

int x1;
int x2;
float i=0;
boolean clique=false;
int velocidade=150;

void setup ()
{
size(600,600);
}

void draw ()
{
background(0);
ellipse(300,300,30,30);
if (clique==true)
  {
    background(0);
    movimento(300,300,x1,x2,velocidade);
  }

}

 void mouseClicked() {
  if(clique == false) {
    x1 = pmouseX;
    x2 = pmouseY;
   }
   clique = true;
}

void movimento(int x, int y, int a, int b, int v)
{
fill(255);
ellipse(x+i*(a-x),y+i*(b-y),30,30);

  if(i<=1)
    {
    i=i+(1.0/v);
    }

}


Comentários
0 Comentários

Nenhum comentário:

Postar um comentário

recent posts