4
respostas

[Dúvida] Colocar um video na tela ao bater em um carro

Gostaria de colocar um efeito,Quando o carro bater no ator aparece um video na tela de explosão. Ao bater o video de explosão ja é reproduzido, porém embaixo do jogo, gostaria de sobrescrever o jogo na hora da explosão e voltar quando acabar. e fazer isso em qualquer batida

Sketch.js

let vid;
function setup() {
  createCanvas(600, 400);

}

function draw() {
  background(imagemDaEstrada);
  mostraAtor();
  mostraCarro();
  movimentaCarro();
  movimentaAtor();
  voltaPosicaoInicialDoCarro();
  verificaColisao();
  incluiPontos();
  marcaPonto();
  maiorquezero();
  podeSeMover();

}

ator.js

//código do ator
let xAtor = 85;
let yAtor = 366;
let colisao = false;
let meusPontos = 0;

function mostraAtor(){
  image(imagemDoAtor, xAtor, yAtor, 30, 30);
}

function movimentaAtor(){
  if (keyIsDown(UP_ARROW)){
    yAtor -= 3;}
  if (keyIsDown(DOWN_ARROW)){
  if(podeMover()){
    yAtor += 3;
    }
  } 
 if (keyIsDown(RIGHT_ARROW)){
 if (moveRight()){    
     xAtor += 3
  }
 }  

  if(keyIsDown(LEFT_ARROW)){
  if(moveLeft()){  
    xAtor -= 3
  }
 }
}

function podeMover(){
  return yAtor < 366;
}

function moveRight(){
  return xAtor < 470;
}

function moveLeft(){
  return xAtor > 0
}




function verificaColisao(){
  //collideRectCircle(x1, y1, width1, height1, cx, cy, diameter)
  for (let i = 0; i < imagemCarros.length; i++){
    colisao = collideRectCircle(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 15)
    if (colisao){
      voltaAtorParaPosicaoInicial();

      if(maiorquezero()){
        meusPontos -= 1;

      }
        if(colisao){
           vid = createVideo(
    ['Video/videoplayback (online-video-cutter.com).mp4'],
             vidLoad

  );
          vid.size(600, 400);
          }
    }
  }
}

function voltaAtorParaPosicaoInicial(){
  yAtor = 366;
}

function incluiPontos(){
  textAlign(CENTER);
  textSize(25);
  fill(color(255, 240, 60))
  text(meusPontos, width / 5, 27);
}

function marcaPonto(){
  if (yAtor < 15){
    meusPontos += 1;
    voltaAtorParaPosicaoInicial();
  }
}

function maiorquezero(){
  return meusPontos > 0

}

function podeSeMover(){
    return yAtor < 366;
}

function vidLoad(){
  vid.play();
}
4 respostas

Olá, Wilson! Tudo bem ?

Você poderia compartilhar o link do seu projeto no p5.js? Assim consigo visualizar melhor e entender o problema.

Acredito que aqui você pode configurar o vídeo na função setup(), depois criar uma função para chamar e interromper o vídeo. Tem um método stop() e você pode conferir a documentação no link: https://p5js.org/reference/#/p5.MediaElement/stop

Fico no aguardo.

Bons estudos!

Olá Boa Tarde, segue link https://editor.p5js.org/leko97/sketches/8ksEE8SVRL

Oi, Wilson! Desculpe a demora!

Olhei o seu projeto e acho que você conseguiu, era isso mesmo?

Fico no aguardo!

Em partes, quero fazer que o video apareça e desapareça sozinho, ainda não consegui fazer