// Horizontal
int bolaX = 200; //posição da elipse no eixo X
int dX = 10; // coeficiente de movimentação da elipse no eixo X
int dXoriginal = dX;
int inversoes = 0;
//Vertical
int bolaY = 200;
int dY = -10;
int dYoriginal = dY;
int inversoesY = 0;
//paddle Mouse
int posXPaddle = 5;
int topoYPaddle;
int fundoYPaddle;
int alturaPaddle = 100;
int larguraPaddle = 20;
//paddle Teclado
int larguraPaddleT = 20;
int alturaPaddleT = 100;
int fundoYPaddleT;
int topoYPaddleT;
int posXPaddleT = 800 - 25;
int posYPaddleT = 300;
int velY = 5;
// Tela
int larguraTela = 800;
int alturaTela = 600;
// Game State
boolean derrota;
void setup()
{
size(larguraTela,alturaTela);
}
void draw()
{
posYPaddleT = velY;
keyPressed();
topoYPaddleT = posYPaddleT;
fundoYPaddleT = posYPaddleT + alturaPaddleT;
topoYPaddle = mouseY;
fundoYPaddle = mouseY + alturaPaddle;
background(0);
rect(posXPaddle, mouseY,larguraPaddle,alturaPaddle);
rect(posXPaddleT, posYPaddleT, larguraPaddleT, alturaPaddleT);
ellipse(bolaX,bolaY,20,20);
bolaX += dX;
bolaY += dY;
detectarColisao();
detectarCenario();
}
void detectarColisao()
{
if(bolaX - 20 <= posXPaddle + larguraPaddle/2 && bolaX - 20 >= posXPaddle - larguraPaddle/2)
{
//println("Detectou X");
if(bolaY >= topoYPaddle && bolaY <= fundoYPaddle)
{
dX += dX/10;
dX *= -1;
calcularAngulo();
}
}
if(bolaX - 20 >= posXPaddleT)
{
//println("Detectou X");
if(bolaY >= topoYPaddleT && bolaY <= fundoYPaddleT)
{
dX += dX/10;
dX *= -1;
calcularAngulo();
}
}
}
void detectarCenario()
{
if(bolaY >= 590 || bolaY <= 10)
{
inversoesY++;
dY *= -1;
}
}
void calcularAngulo()
{
float rand = random(3,8);
if(bolaY >= topoYPaddle && bolaY <= topoYPaddle + alturaPaddle/2)
{
dY -= rand;
//println(rand);
}
else
{
dY += rand;
//println("Bateu baixo " + rand);
}
}
void keyPressed() {
if (key == CODED) {
if (keyCode == UP) {
velY += -5;
} else if (keyCode == DOWN) {
velY += 5;
}
else
{
velY = velY;
}
}
}
Funções:
keyPressed: Detecta se as setas para cima ou para baixo estão apertadas
detectarColisao: Acrescentei o condicional para detectar o paddle do teclado.
Nenhum comentário:
Postar um comentário