Boa tarde pessoal, estou tentando criar um jogo um pouco mais personalizado e tive a ideia de trocar o ator quando pressionado as teclas para cima e para baixo, para dar uma ideia maior de movimento. Tive a ideia de criar uma variável "parado" começando em true e adicionando-a como parâmetro na função "mostraAtor". Para que assim pudesse negá-la ao executar a função "mostraAtorMovimento" com "parado = false" e as imagens não se sobrepusessem. Deu certo, quando me movimento o ator parado some e o que da ideia de movimento surge, o problema é que o ator parado não volta depois que solto a tecla. Alguma ideia de como fazer funcionar?
Segue o código mencionado:
var xAtor = 85;
var yAtor = 370;
var colisao = false;
var parado = true;
var meusPontos = 0;
function mostraAtor() {
if (parado) {
image(imagemAtor, xAtor, yAtor, 50, 55);
}
}
function mostraAtorMovimento() {
image(imagemAtorMovimento, xAtor, yAtor, 50, 55);
}
function movimentaAtor() {
if (keyIsDown(UP_ARROW)) {
parado = false;
mostraAtorMovimento();
yAtor -= 3;
}
if (keyIsDown(DOWN_ARROW)) {
parado = false;
mostraAtorMovimento();
yAtor += 3;
}
}
function verificaColisao() {
// collideRectRect(x, y, width, height, x2, y2, width2, height2 )
for (var i = 0; i < imagemCarros.length; i++) {
colisao = collideRectRect(xCarros[i], yCarros[i], comprimentoCarro, alturaCarro, xAtor, yAtor, 50, 50);
if (colisao) {
voltaAtorParaPosicaoInicial();
somDaColisao.play();
if (pontosMaiorQueZero()) {
meusPontos -= 1;
}
}
}
}
function voltaAtorParaPosicaoInicial() {
yAtor = 370;
}
function mostraPontos() {
textAlign(CENTER);
textSize(25);
fill(color(255,215,0));
text(meusPontos, width / 5, 27);
}
function marcaPonto() {
if (yAtor < -23) {
meusPontos += 1;
somDoPonto.play();
voltaAtorParaPosicaoInicial();
}
}
function pontosMaiorQueZero() {
return (meusPontos > 0)
}