Skip to content

Exercício F09 – Ilusão de Ótica e Estrutura de Repetição

Veja especificação em anexo.

Estaremos tratando dos tópicos 1 e 3 do material de interação.

Alguns exemplos de aplicação de estrutura de repetição que construímos durante a aula:


/*
for(int pos=10;pos<=90;pos=pos+40) {
 line(pos,10,pos,80);
}*/
//noFill();
/*
for(int i=20;i<=100;i=i+25) {
 ellipse(50,50,i,i);
}
*/
/*
for(int i=95;i>=20;i=i-25) {
 ellipse(50,50,i,i);
}
*/
/*
for(int i=95;i>=20;i=i-3) {
 ellipse(50,50,i,i);
}
*/
size(100,255);
for(int i=0;i<255;i++) {
 stroke(i);
 line(0,i,100,i);
}

Exemplo para trabalhar com o teclado:


int x=150,y=150;
void setup() {
 size(300,300);
}
void draw() {
 background(0);
 ellipse(x,y,10,10);
}
void keyPressed() {
 if(key=='a') x = x - 10;
 if(key=='d') x = x + 10;
 // SE a tecla for especial
 if(key==CODED) {
   if(keyCode==UP) y = y - 10;
   if(keyCode==DOWN) y = y + 10;
 }
}

Jogo de Carro e Jogo de Pong – 25 e 26/8

Download da pista usada no jogo de carro

Hoje, analisaremos dois fragmentos de jogos: um jogo de carro e um pong. Em ambos, utilizo a função constrain para restringir o movimento do mouse.

Observe também a estratégia usada para implementar o scroll (rolagem) no jogo de carro.

Jogo do Labirinto – 18 e 19/8 – Aula 26

Segue, abaixo, jogo gerado na aula de 18 e 19/8.

Continuar lendo ‘Jogo do Labirinto – 18 e 19/8 – Aula 26’ »

Interação via Mouse – Aula 25 e 26 – 11, 12/8; 18, 19/8; 25, 26/8

Trabalharemos nas próximas aulas com interação via MOUSE.

Parte do material relacionado à aula está no seguinte link, na seção 2:

http://www.brunocampagnolo.com/2010_2/processing/interacao/

Observe que este material é uma baseado, principalmente, em exemplos. Gerei cerca de 25 códigos associados a tarefas usuais com o mouse.

Nas próximas semanas, vamos analizar códigos semelhantes a estes exemplos (em anexo), aproveite para verificar seu funcionamento.

Exercício F08 – Jogo com 0 botões

Você deverá criar um jogo cuja interação deve ser exclusiva com o movimento do mouse.

Segue especificação em anexo.

Entrega em 31/08/2010!

Jogo de Perseguição (versão final) – 12 e 13/8 – Aula 25

Segue código de jogo de perseguição, gerado na aula de 12 e 13 de agosto.

Continuar lendo ‘Jogo de Perseguição (versão final) – 12 e 13/8 – Aula 25’ »

Jogo de perseguição

Durante as próximas aulas vamos gerar alguns minigames que, em sua interação, não aplicam nenhum botão (nem mouse e nem teclado).


float xi=100,yi=100,vxi=2,vyi=2;
int vida = 3;
PFont arial;
void setup() {
 size(600,400);
 noCursor();
 arial = createFont("Arial",30);
 textFont(arial);
}
void draw() {
 if(xi<mouseX) {
 vxi = 2;
 } else {
 vxi = -2;
 }
 if(yi<mouseY) {
 vyi = 2;
 } else {
 vyi = -2;
 }
 xi = xi + vxi;
 yi = yi + vyi;
 if(dist(mouseX,mouseY,xi, yi)<=30) {
 vida = vida - 1;
 xi = random(width);
 yi = random(height);
 }
 background(128);
 ellipse(mouseX,mouseY,40,40);
 ellipse(xi,yi,20,20);
 text(vida, 30, 30);
}
float xi=100,yi=100,vxi=2,vyi=2;
int vida = 3;
PFont arial;
int estado = 0;
void setup() {
 size(600,400);
 noCursor();
 arial = createFont("Arial",30);
 textFont(arial);
}
void draw() {
 if(estado==0) jogo();
 if(estado==1) gameover();
}
void gameover() {
 text("game over", 100, 100);
 if(keyPressed) {
 estado = 0;
 vida = 3;
 }
}
void jogo() {
 if(xi<mouseX) {
 vxi = 2;
 } else {
 vxi = -2;
 }
 if(yi<mouseY) {
 vyi = 2;
 } else {
 vyi = -2;
 }
 xi = xi + vxi;
 yi = yi + vyi;
 if(dist(mouseX,mouseY,xi, yi)<=30) {
 vida = vida - 1;
 xi = random(width);
 yi = random(height);
 }
 if(vida==0) {
 estado = 1;
 }
 background(128);
 ellipse(mouseX,mouseY,40,40);
 ellipse(xi,yi,20,20);
 text(vida, 30, 30);
}

Entrega do trabalho F07

Deve ser feita via Eureka, no Plano de Trabalho até no máximo amanhã (4/8), até meio-dia.

Notas finais lançadas

Pessoal,

Notas finais foram lançadas.

http://www.brunocampagnolo.com/2010ip1/notas

Correções e verificações de erro agora só depois das férias de julho.

Boas férias!

Entrega da conferência da Prova 2 e do Exercício 5 desta prova

Entrega no máximo até segunda-feira às19:00h.

Entregue também via Correio do Eureka para garantir a entrega.

Continuar lendo ‘Entrega da conferência da Prova 2 e do Exercício 5 desta prova’ »

Exemplo da aula de 17/6/2010

Código da aula de máquina de estados (turma quinta)


float x=200,vx=1, y=100, vy = 1;
float xinimigo = 50, yinimigo=70;
int estado = 0;
void setup() {
 size(300,300);
}
void draw() {
 x = x + vx;
 if(estado==0) { // VAGANDO
 vagando();
 if(dist(x,y,xinimigo,yinimigo)<50)
 estado = 1;
 }
 if(estado==1) { // ATACANDO
 atacando();
 if(dist(x,y,xinimigo,yinimigo)<5) {
 estado = 0;
 xinimigo = random(width);
 yinimigo = random(height);
 }
 }
 background(0,0,255);
 fill(0,255,0);
 ellipse(x,y,20,20);
 fill(255,0,0);
 ellipse(xinimigo,yinimigo,20,20);
}
void atacando() {
 y = y + vy;
 if(x<xinimigo) {
 vx = 1;
 } else {
 vx = -1;
 }
 if(y<yinimigo) {
 vy = 1;
 } else {
 vy = -1;
 }
}

void vagando() {
 // Se bater nas laterais, volta!
 if(x>width || x<0) {
 vx = -vx;
 }
}
float x=200,vx=1, y=100, vy = 1;
float xinimigo = 50, yinimigo=70;
int estado = 0;
void setup() {
 size(300,300);
}
void draw() {
 x = x + vx;
 switch(estado) {
 case 0:
 vagando();
 if(dist(x,y,xinimigo,yinimigo)<50)
 estado = 1;
 break;
 case 1:
 atacando();
 if(dist(x,y,xinimigo,yinimigo)<5) {
 estado = 0;
 xinimigo = random(width);
 yinimigo = random(height);
 }
 break;
 }
 background(0,0,255);
 fill(0,255,0);
 ellipse(x,y,20,20);
 fill(255,0,0);
 ellipse(xinimigo,yinimigo,20,20);
}
void atacando() {
 y = y + vy;
 if(x<xinimigo) {
 vx = 1;
 }
 else {
 vx = -1;
 }
 if(y<yinimigo) {
 vy = 1;
 }
 else {
 vy = -1;
 }
}

void vagando() {
 // Se bater nas laterais, volta!
 if(x>width || x<0) {
 vx = -vx;
 }
}

Exemplo com máquina de estados


// Posição e vel do personagem e inimigo
float x = 100, vx = 1, xinimigo=200;
float y = 100, vy = 1, yinimigo=200;
int estado = 0;
void setup() {
 size(300,300);
}
void draw() {
 background(0);
 fill(255,0,0);
 ellipse(x,y,10,10);
 fill(0,255,0);
 ellipse(xinimigo,yinimigo,10,10);
 switch(estado) {
 case 0:
 atacando();
 // SE a distancia for menor que 10 vague!
 if(dist(x,y,xinimigo,yinimigo)<10) {
 estado = 1;
 }
 break;
 case 1:
 vagando();
 break;
 }
}
void vagando() {
 x = x + vx;
 if( (x>width) || (x<0)) {
 vx = -vx;
 }
}
void atacando() {
 // Se o personagem estiver à ESQUERDA
 if(x<xinimigo) {
 vx = 1;
 }
 // Se o personagem estiver à DIREITA
 if(x>xinimigo) {
 vx = -1;
 }
 // Se o personagem estiver ACIMA
 if(y<yinimigo) {
 vy = 1;
 }
 // Se o personagem estiver ABAIXO
 if(y>yinimigo) {
 vy = -1;
 }
 x = x + vx;
 y = y + vy;
}

Funções com parâmetros e sem retorno, switch e máquina de estados – Aula 16 – 08/06/2010

Hoje nosso objetivo é trabalhar com os tópicos finais do nosso bimestre: funções com parâmetros e sem retorno,  switch e máquinas de estados.

Estes tópicos são tratados nos itens 5 e 6 de nosso material teórico. Além disso, passaremos o exercício de fechamento do bimestre.

Exercício F07 – Fechamento do Semestre

Este é o exercício de finalização do segundo bimestre início do 3o bimestre e tem um valor maior que os outros exercícios. Ele revisa uma série de conceitos que tratamos em outros exercícios.

Continuar lendo ‘Exercício F07 – Fechamento do Semestre’ »

Animação temporizada e defesas – Aula 14 e 15 – 25/5/2010, 27/5/2010 e 1/6

Exercício O02 – Tempo e Animação temporizada

Um dos principais objetivo destes exercícios é entender como trabalhar com animações que dependem do tempo. Para isto, vamos usar a função millis. Tal função retorna o número de milissegundos desde o início do programa. Outras funções que também são interessantes para se usar com unidades de tempo são as funções second, minute e hour, que retornam, respectivamente, o número de segundos, minutos e segundos do dia.

Continuar lendo ‘Exercício O02 – Tempo e Animação temporizada’ »

Entrega do Exercício F06

Exemplo da aula de quinta – 20/5/2010

Exemplos da turma de terça – 18/05/2010

Relembrando o if (assunto da aula passada).

Continuar lendo ‘Exemplos da turma de terça – 18/05/2010’ »

Estrutura de Seleção – Parte 2 – Aula 13 – 18/5/2010 e 20/5/2010

Aula dedicada ao F05 e F06.

Também fizemos uma prévia da defesa.

No começo da aula fizemos uma revisão do if através de um exemplo.

Exemplos da turma de terça – 11/5/2010

Abaixo, os exemplos construídos na aula.

Continuar lendo ‘Exemplos da turma de terça – 11/5/2010’ »

Exercício F06 – Estrutura de Seleção

Estes exercícios são referentes ao modo contínuo do Processing e estrutura de seleção.

Entrega do exercício

Continuar lendo ‘Exercício F06 – Estrutura de Seleção’ »

Estrutura de Seleção – Parte 1 – Aula 12 – 11/5/2010 e 13/5/2010

Nesta aula, nosso objetivo será conhecer a estrutura de seleção. Trabalharemos com os tópicos 2, 3 e 4 do material do 2o bimestre.

Tal estrutura permitirá que controlemos o fluxo de execução de um algoritmo. O objetivo principal desta aula é que você saiba reconhecer e entender o funcionamento das estruturas if e else.

Modo Contínuo no Processing – Parte 2 – Aula 11 – 4/5 e 14/5

Aula foi dedicada a dúvidas do exercício F05. Observe que a turma de quinta terá esta aula apenas no dia 14/5.

Exemplos das aulas de 27 e 29 de Abril

Modo contínuo no Processing – Aula 10 – 27 e 29/4/2010

Nesta aula, nosso objetivo é iniciar o trabalho com animações no Processing. Para isto, vamos conhecer o modo contínuo, no qual, definimos uma função draw que será repetida periodicamente durante a execução de nossos programas.

O material do segundo bimestre está disponível em:

http://www.brunocampagnolo.com/2010_1/processing/animacao/

Durante a aula de hoje vamos entender os primeiros passos sobre como definir uma animação. Recomendo a leitura, impressão e entendimento da apresentação relacionada à aula.

Para demonstrar que imagens também podem ser animadas, usei as imagens disponíveis em:

http://lostgarden.com/2007/05/dancs-miraculously-flexible-game.html

Exemplos gerados na aula

Exercício F05 – Animação infinita

Resolva os exercícios abaixo. Neste exercício, você vai implementar apenas animações infinitas, ou seja, não se preocupe com a parada de sua animação.

Continuar lendo ‘Exercício F05 – Animação infinita’ »

Conferência de Prova e Animação no Processing – Aula 09 – 20 e 22/4/2010

Esta aula em seu início foi dedicada a uma introdução ao modo contínuo no Processing.

Criamos apenas um exemplo:


// Criar a variável x que representa
// a posição da minha elipse
float x=0;
void setup() {
 size(300,300);
}
// A função draw será chamada 60x por
// segundo
void draw() {
 background(0);
 ellipse(x,height/2,100,100);
 x = x + 1;
}

Além disso, a aula também foi dedicada à conferência das notas de prova e à proposição de um exercício extra para somar 1 ponto à sua nota de prova.

Atividade extra referente à Prova 01

Pessoal,

Para reforçar os  conceitos da Prova 01 e dar um ponto extra aos alunos que não foram tão bem de prova, permitindo uma recuperação de até 1 ponto em sua prova, realize a atividade a seguir.

Continuar lendo ‘Atividade extra referente à Prova 01’ »

Entrega da atividade extra referente à Prova 1

Segue formulário de entrega da atividade de recuperação.

Não esqueça! Respostas em papel no início da aula do dia 27 e 29/4!

Continuar lendo ‘Entrega da atividade extra referente à Prova 1’ »

Conferência da Prova

Abaixo, seus códigos de prova e modelos.
Até sexta, dia 29/4, a correção das provas.

Continuar lendo ‘Conferência da Prova’ »

Prova da 1a Parcial – Aula 08 – 15/4/2010

No dia 15 fizemos a nossa primeira prova.

Disponibilizarei o gabarito desta prova e a nota  de cada aluno até o dia 27/4.

Revisão para a prova da primeira parcial – Aula 07 – 13/04/2010

Nesta aula, dedicada às duas turmas em uma sala só, nós revisamos alguns dos exercícios da lista F04.

Fechamento da 1a Parcial

Pessoal, com o exercício F04, faço o fechamento da nossa primeira parcial.

Na próxima semana, no dia 15/04 (quinta) teremos nossa primeira prova. Esta prova será na sala de desenho D6 e será para a turma toda.

No dia 13/04 (terça) farei uma revisão de tudo que fizemos até agora baseada, principalmente, no exercício F04.

Importante: a data de entrega máxima dos exercícios passados até agora é o dia 22/4.

Exercício F04 – Entrega

Desenho com Processing – Chamada e Criação de Funções – Aula 06 – 06 e 08/04/2010

Nesta aula, nós finalizamos o objetivo de nosso primeiro bimestre: desenho programacional.

O assunto do próximo bimestre será o tópico animação. Como fechamento, trabalhamos com os tópicos 13, 14, 15 e 16 do material do primeiro bimestre.

O ponto mais importante desta aula, e que será cobrado em nossa prova da semana que vem, foi a divisão de nossos programas em funções.

Códigos desenvolvidos na aula de terça

Códigos desenvolvidos na aula de quinta

Códigos desenvolvidos na aula de terça – Aula 06 – 06/04/2010

Nesta aula, trabalhamos com chamada e criação de funções.

Continuar lendo ‘Códigos desenvolvidos na aula de terça – Aula 06 – 06/04/2010’ »

Código desenvolvido na aula de quinta – Aula 06 – 08/04/2010

Nesta aula, trabalhamos com chamada e criação de funções.

Continuar lendo ‘Código desenvolvido na aula de quinta – Aula 06 – 08/04/2010’ »

Exercício F04 – Composição de Código e Revisão

A seguir, um conjunto de exercícios com dois objetivos:

  • Cobrar os tópicos 13, 14, 15 e 16, tratados na aula de 6/4;
  • Revisar alguns conceitos como preparação para a prova de 15/4.

Você não precisa entregar todos os exercícios.

Entregue apenas os números:

  • 3 a, e e h;
  • 4, 5, 6, 7 e 8;
  • 10 b;

Os demais exercícios são uma revisão para a prova e poderão ser usados como modelo para os exercícios desta.

Na aula de 13/4, faremos uma revisão resolvendo estes exercícios. Esta revisão será na sala de Desenho de vocês.

Formulário de entrega do exercício
Continuar lendo ‘Exercício F04 – Composição de Código e Revisão’ »

Dúvidas Exercício F03 – Tangram e Árvore Genealógica

Seguem respostas para algumas dúvidas referentes ao exercicio F03.

Continuar lendo ‘Dúvidas Exercício F03 – Tangram e Árvore Genealógica’ »

Desenho com Processing, Variáveis, Imagens e Textos – Aula 05 – 23 e 25/03/2010

Esta aula foi uma continuação imediata da aula 04. Desta forma, não tratamos de nenhum tópico novo, a maior parte da aula foi para dúvidas referentes ao Exercício F02 e para a proposição do Exercício F03.

Continuar lendo ‘Desenho com Processing, Variáveis, Imagens e Textos – Aula 05 – 23 e 25/03/2010’ »

Exercício F03 – Tangram e Árvore Genealógica

Neste exercício lidamos com variáveis, cores e curvas. Observe que ele é dividido em 2 partes e a primeira parte depende de um código específico para cada aluno.

Continuar lendo ‘Exercício F03 – Tangram e Árvore Genealógica’ »

Desenho com Processing, Variáveis, Imagens e Textos – Aula 04 – 16 e 18/03/2010

Na aula de hoje, trabalharemos com os tópicos 10, 11 e 12 do material do primeiro bimestre: variáveis, imagens e textos.

Continuar lendo ‘Desenho com Processing, Variáveis, Imagens e Textos – Aula 04 – 16 e 18/03/2010’ »

Exercício F02 – Variáveis, Textos e Imagens

O objetivo principal deste exercício é você trabalhar com os conceitos trabalhados na aula 04: variáveis, imagens e textos.

Continuar lendo ‘Exercício F02 – Variáveis, Textos e Imagens’ »

Desenho com Processing – Aula 03 – 09 e 11/3/2010

Na aula passada, nosso objetivo foi conhecer o Processing. Propusemos também, o exercício F01 para treinar as funções de desenho que foram exploradas.

Seu objetivo de hoje é continuar a resolver o exercício F01. Não se limite, porém, ao que foi ensinado na aula! Explore mais recursos do Processing como, por exemplo, as funções relacionadas a ângulos no Processing: translate, rotate scale e radians. Tais funções estão relacionadas ao tópico 8 do material do 1o bimestre.

Continuar lendo ‘Desenho com Processing – Aula 03 – 09 e 11/3/2010’ »

Exercício O01 – Ângulos, Rotação, Translação e Escalonamento

Este é um exercício opcional. Exercícios opcionais não tem data de entrega, mas são fortes candidatos a pontos extra ou uso em prova.

O objetivo deste exercício é explorar as funções relacionadas a ângulos e vértices no Processing: translate, rotate scale e radians.

Estas funções são exploradas no tópico 8 de seu material teórico. São essenciais para que futuramente trabalhemos com desenhos em 3d.

Continuar lendo ‘Exercício O01 – Ângulos, Rotação, Translação e Escalonamento’ »

Desenho com o Processing – Aula 02 – 02 e 4/03/2010

Na aula de 2/3 (e 4/3) conhecemos, na prática, a ferramenta que vamos utilizar durante nossa disciplina: o Processing.

Iniciamos com alguns conceitos básicos de Lógica de Programação. Percorremos os tópicos de 3 a 9 do material do 1o Bimestre que trataram da arquitetura das instruções em uma linguagem de programação, dos tipos de dados básicos e de algumas funções para desenho das primitivas gráficas.

No fim da aula, foi proposto o exercício F01. Você deve desenvolver este exercício durante esta semana e a próxima.

Exercício F01 – Programação gráfica

Neste exercício, seus objetivos serão:

  • conhecer e testar alguns conceitos de uma linguagem de programação voltada para a programação gráfica como o Processing;
  • entender algumas estruturas de controle usadas nas linguagens de programação;
  • fixar, de maneira prática, conceitos de matemática que serão aplicados em nossa disciplina.

Procure manter uma complexidade baixa no seu código. O exercício mais importante e de maior peso desta lista é o exercício 6 (criação do alienígena).

Continuar lendo ‘Exercício F01 – Programação gráfica’ »

Exercício de Escrita e Leitura de Código – Aula 01 – 25/2/2010

Nesta aula, realizamos uma atividade com os exercícios solicitados na aula anterior.

Continuar lendo ‘Exercício de Escrita e Leitura de Código – Aula 01 – 25/2/2010’ »