1
resposta

Projeto Finalizado com Níveis de Dificuldade

Boa noite Galera, usando os conhecimentos desse curso e do curso Javascript e HTML: desenvolva um jogo e pratique lógica de programação com o professor Flávio Henrique de Souza Almeida,(e também alguma pesquisa na internet :D) eu inseri alguns níveis de dificuldade no jogo.

Obs: Créditos da função bolinhaNãoFicaPresa são da aluna Laís Gomes Reis da Silva, porém modifiquei pra bolinha aparecer no centro Segue o codigo feedbacks são bem vindos

let dificuldade = [parseInt(prompt("selecione o nivel de dificuldade \n 1: Fácil \n 2: normal \n 3: Dificil \n 4: Muito Dificil"))];
while(dificuldade != 1 && dificuldade !=2 && dificuldade !=3 && dificuldade !=4){
    dificuldade = [parseInt(prompt("selecione o nivel de dificuldade \n 1: Fácil \n 2: normal \n 3: Dificil \n 4: Muito Dificil"))];
}

//variáveis da bolinha
let xBolinha = 300;
let yBolinha = 200;
let diametro = 13;
let raio = diametro / 2 ;

//velocidade da bolinha
let velocidadeXBolinha;
let velocidadeYBolinha;
if(dificuldade == 1){
  velocidadeXBolinha = 5;
  velocidadeYBolinha = 5;
}
if(dificuldade == 2){
  velocidadeXBolinha = 6;
  velocidadeYBolinha = 6;
}
  if(dificuldade == 3){
velocidadeXBolinha = 7;
velocidadeYBolinha = 7;
}
if(dificuldade == 4){
  velocidadeXBolinha = 9;
  velocidadeYBolinha = 9;
}

//variáveis da raquete
let xRaquete = 5;
let yRaquete = 150;
let raqueteComprimento = 10;
let raqueteAltura = 90;

let colidiu = false;

//variáveis do oponente
let xRaqueteOponente = 585;
let yRaqueteOponente = 150;
let velocidadeYOponente;

// variáveis de pontuação
let meusPontos = 0;
let pontosDoOponente = 0;

// sons do jogo
let raquetada;
let ponto;
let trilha;

// variaveis pra chance de errar
let numeroMinimo;
let numeroMaximo;
let chanceDeErrar;

function preload(){
  trilha = loadSound("trilha.mp3");
  ponto = loadSound("ponto.mp3");
  raquetada = loadSound("raquetada.mp3");
}
function setup() {

  createCanvas(600, 400);
  trilha.loop();
}
function draw() {
  background(0);
  mostraBolinha();
  movimentaBolinha();
  verificaColisaoBorda();
  mostraRaquete(xRaquete, yRaquete);
  mostraRaquete(xRaqueteOponente,yRaqueteOponente);
  movimentaMinhaRaquete();
  calculaChanceDeErrar();
  movimentaRaqueteOponente();
  colisaoRaqueteBiblioteca(xRaquete, yRaquete);
  colisaoRaqueteBiblioteca(xRaqueteOponente, yRaqueteOponente);
  incluiPlacar();
  marcaPonto();
  bolinhaNaoFicaPresa();
}
function mostraBolinha(){
  circle(xBolinha, yBolinha, diametro);
}
function movimentaBolinha(){
  xBolinha += velocidadeXBolinha;
  yBolinha += velocidadeYBolinha;
}
function verificaColisaoBorda(){
  if (xBolinha + raio> width ||
     xBolinha - raio< 0){
    velocidadeXBolinha *= -1;
  }
  if (yBolinha + raio> height ||
     yBolinha - raio < 0){
    velocidadeYBolinha *= -1;
  }
}
function mostraRaquete(x,y){
  rect(x, y, raqueteComprimento, 
      raqueteAltura);
}
function movimentaMinhaRaquete(){
  if (keyIsDown(UP_ARROW)){
    yRaquete -= 10;
  }
  if (keyIsDown(DOWN_ARROW)){
    yRaquete += 10;
  }
}
function colisaoRaqueteBiblioteca(x,y){
  colidiu = collideRectCircle(x, y, raqueteComprimento, raqueteAltura, xBolinha, yBolinha, raio);
  if(colidiu){
    velocidadeXBolinha *= -1
    raquetada.play();
  }
}
function calculaChanceDeErrar(){
  if(dificuldade == 1){
    numeroMinimo = 35;
    numeroMaximo = 50;
    chanceDeErrar = Math.floor(Math.random() * (numeroMaximo - numeroMinimo + 1) + numeroMinimo);
  }
    if(dificuldade == 2){
    numeroMinimo = 32;
    numeroMaximo = 47;
    chanceDeErrar = Math.floor(Math.random() * (numeroMaximo - numeroMinimo + 1) + numeroMinimo);
  }
    if(dificuldade == 3){
    numeroMinimo = 30;
    numeroMaximo = 45;
    chanceDeErrar = Math.floor(Math.random() * (numeroMaximo - numeroMinimo + 1) + numeroMinimo);
  }
    if(dificuldade == 4){
    numeroMinimo = 15;
    numeroMaximo = 40;
    chanceDeErrar = Math.floor(Math.random() * (numeroMaximo - numeroMinimo + 1) + numeroMinimo);
  }
}
function movimentaRaqueteOponente(){
  velocidadeYOponente = yBolinha - yRaqueteOponente - raqueteComprimento /2 - 30;
  yRaqueteOponente += velocidadeYOponente + chanceDeErrar;
}
function incluiPlacar(){
  stroke(255);
  textAlign(CENTER);
  textSize(16);
  fill(color(255,140,0));
  rect(130, 10, 40, 20);
  fill(255);
  text(meusPontos, 150,26);
  fill(color(255,140,0));
  rect(430, 10, 40, 20)
  fill(255);
  text(pontosDoOponente, 450, 26);
}
function marcaPonto(){
  if(xBolinha + raio > 600){
     meusPontos += 1;
    ponto.play()
  }
  if (xBolinha - raio < 0){
      pontosDoOponente += 1;
    ponto.play();
  }
}
function bolinhaNaoFicaPresa(){
    if (xBolinha - raio < 0){
      xBolinha = 300
    }
    if (xBolinha + raio > 600){
      xBolinha = 300
    }
}
1 resposta

Fala, Guilherme ! Tudo certo ?

Em primeiro lugar parabéns por ter concluído o projeto e ainda ter adicionado níveis de dificuldade nele, realmente ficou muito bom. E por se desafiar e pesquisar como poderia ser feito e até mesmo utilizar conhecimentos de outro curso, fico muito feliz de ver o seu avanço.

Abraço e Bons estudos !!