Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // @autor Jorge Luiz dos Santos Ramos Junior
- // data de criação: versão básica sem animação 16/abr/2014, inclusão de setup() draw() classe Barco e animação em 25/abr/2014
- /* inspiração: Com quantos gigabytes
- Se faz uma jangada
- Um barco que veleje
- Um barco que veleje
- o código é uma tentativa de visualização desse trecho */
- // variável barco
- Barco b;
- void setup()
- {
- // definição da janela
- size(800,600);
- // definições do barco
- float x = 300; // posição inicial no eixo x
- color c1 = color(40,8,8); // cor do barco
- color c2 = color(248,248,248); // cor da bandeira e do texto
- int l = 300; // largura
- int a = 325; // altura
- float v = 1.5; // velocidade em pixels
- b = new Barco(x, c1, c2, l, a, v);
- }
- void draw()
- {
- noStroke();
- background(64,192,255);
- // água
- fill(0,0,192);
- rect(0,500,width,100);
- // sol
- fill(255,192,0);
- ellipse(700,100,100,100);
- b.move();
- b.display();
- }
- class Barco
- {
- // redundante, mas melhor do que sem comentários!
- float x; // posição no eixo x
- color c1; // cor do barco
- color c2; // cor da bandeira e do texto
- int l; // largura
- int a; // altura
- float v; // velocidade em pixels
- Barco(float x, color c1, color c2, int l, int a, float v)
- {
- this.x = x;
- this.c1 = c1;
- this.c2 = c2;
- this.l = l;
- this.a = a;
- this.v = v;
- }
- // tamanhos em função de l, h escolhidos por algo de tentativa e erro :D
- void display()
- {
- // cor para o corpo e a haste
- fill(c1);
- // corpo
- rect(x, 400, l, 100);
- triangle(x-l/3, 400, x, 400, x, 500);
- triangle(x+l, 400, x+l, 500, x+l+l/3, 400);
- // haste
- rect(x+3*l/7, 400-a, l/7, a);
- // cor para o texto e a bandeira
- fill(c2);
- // bandeira
- triangle(x+4*l/7, 400-a, x+l, 400-a, x+4*l/7, 400-5*a/6);
- // texto
- fill(c2);
- textSize(32);
- text("GB", x+l/30, 460);
- }
- void move()
- {
- // v pixels por passo
- x = x + v;
- // retorna para a esquerda ao alcançar a direita
- // l/3 é a largura de um dos triângulos que compõem os lados
- // portanto, o barco deve retornar apenas quando o triângulo passar da direita
- // e retornar aparecendo com a ponta do triângulo da direita
- if (x > width+l/3)
- {
- x = 0-l-l/3; // l = largura do casco, l/3 largura do triângulo
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment