Olá pessoal, hoje iremos brincar de criar clássicos do atari, e o escolhido da vez foi ele, o Breakout. Com uma arquitetura simples e bem similar ao Pong, o breakout consiste em você acerta a bolinha em varios blocos que estão acima de você.
Mas vamos para a parte de programar o jogo. E nela você precisará criar vários boleanos para identificar a colisão da bola em sua barrinha, e nos "inimigos". Serão cerca de 16 inimigos para o tamanho da tela que será usada, caso queiram fazer em uma tela maior, basta aumentar a quantidade também. Para as cores dos bloquinhos criasse alguns floats, e neles atribuísse a função random(0, 255) para que varie de 0 a 255 da escala de cor.
Depois fazemos as funções de colisões possivel, e logo em seguida faremos a leitura das funções e criando todos os nossos objetos do jogo, nos seus devidos lugares.
O código encontra-se logo abaixo:
float bolaY=250 ;// onde a bola nasce, posição da bola
float bolaX=250 ;// onde a bola nasce, posição da bola
float dX=1; // velocidade da bola
float dY=1; // velocidade da bola
float tamBola=10;
float xP = 110; //posição da barra
float yP = 210; // posição da barra
float x1,x2,y1,y2;// variaveis para a função colisão
float xB=80; // tamanho da barra
float yB=10; // altura da barra
boolean x,z1,mz1,z2,mz2,z3,mz3,z4,mz4,mz5,z5,mz6,z6,mz7,z7,mz8,z8,mz9,z9,mz10,z10,mz11,z11,mz12,z12,mz13,z13,mz14,z14,mz15,z15,mz16,z16;
float xB1=20;// tamanho do inimigo
float yB1=10;//altura do inimigo
float xP1=0;//posição do inimigo
float yP1=20;//posição do inimigo
float xP2=20;
float xP3=40;//posição do inimigo
float xP4=60;
float xP5=80;
float xP6=100;//posição do inimigo
float xP7=120;
float xP8=140;
float xP9=160;
float xP10=180;//posição do inimigo
float xP11=200;
float xP12=220;
float xP13=240;//posição do inimigo
float xP14=260;
float xP15=280;
float xP16=300;
float corz11,corz12,corz13;
float corz21,corz22,corz23;
float corz31,corz32,corz33;
float corz41,corz42,corz43;
void setup (){
size(320,240);
mz1=false;
mz2=false;
mz3=false;
mz4=false;
mz5=false;
mz6=false;
mz7=false;
mz8=false;
corz11=random(0, 255);
corz12=random(0, 255);
corz13=random(0, 255);
corz21=random(0, 255);
corz22=random(0, 255);
corz23=random(0, 255);
corz31=random(0, 255);
corz32=random(0, 255);
corz33=random(0, 255);
bolaX=100;
bolaY=100;
}
Boolean colisao (float x1,float y1,float x2, float y2){
if(x1>x2 && x1<(x2+80) && y1>y2 && y1<(y2+10)){
return true;
} else {
return false;
}
}
Boolean colisaoInimigo (float x1,float y1,float x2, float y2){
if(x1>x2 && x1<(x2+20) && y1>y2 && y1<(y2+10)){
return true;
} else {
return false;
}
}
void bloco (float x1, float x2,float y1,float y2){
if (x==true){
dY= -dY-(dY*0.01);
}
}
void draw(){
background(0);
//bola em movimento
ellipse(bolaX,bolaY,tamBola,tamBola);
bolaY=bolaY+dY;
bolaX=bolaX+dX;
if(bolaY>=(height-(tamBola/2))){
bolaX=40;
bolaY=40;
ellipse(40,40,tamBola,tamBola);
bolaY=bolaY+dY;
bolaX=bolaX+dX;
}
if(bolaY<=(tamBola/2)){
dY= -dY-(dY*0.01);
}
if(bolaX>=(width-(tamBola/2))){
dX= -dX-(dY*0.01);
}
if(bolaX<=(tamBola/2)){
dX= -dX-(dY*0.01);
}
rect(xP, yP, xB, yB); // barra inferior
if(keyPressed == true) {
if(keyCode == RIGHT) {
if(xP<=(320-xB))
xP+=8;
} else if(keyCode == LEFT) {
if(xP>=0){
xP-=8;
}
}
}
// colisão
x = colisao(bolaX,bolaY,xP,yP);
if (x==true){
if(bolaX>xP && bolaX
O resultado do jogo é mais ou menos esse.

