após eu chamar a função "tentaMover" no comando para ir para baixo (linha 63) quando vou pra cima e colido em uma parede ele fica trancado e não anda mais pra baixo, só para os lados, e se eu escrever o codigo inteiro(linha 27 até linha 52) no comando passando o valor do "meuDeslocamentoY" na liha 63 o codigo ele não tranca na parede
-- title: Fuga Das Sombras
-- author: Thiago Tavares
-- desc: RPG de acao 2d
-- script: lua
jogador = {
sprite = 32,
x = 120,
y = 68
}
constantes = {
LARGURA_DA_TELA = 240,
ALTURA_DA_TELA = 130
}
function temColisaoComMapa(ponto)
blocoX = ponto.x / 8
blocoY = ponto.y / 8
blocoId = mget ( blocoX, blocoY)
if blocoId >= 128 then
return true
else
return false
end
end
function tentaMover(meuDesclocamentoY)
superiorEsquerdo = {
x = jogador.x - 8,
y = jogador.y -8 - 1
}
superiorDireito = {
x = jogador.x + 7,
y = jogador.y -8 - 1
}
inferiorDireito = {
x = jogador.x + 7,
y = jogador.y + 7 + meuDesclocamentoY
}
inferiorEsquerdo = {
x= jogador.x - 8,
y = jogador.y + 7 + meuDesclocamentoY
}
if temColisaoComMapa(superiorEsquerdo) or
temColisaoComMapa (superiorDireito) or
temColisaoComMapa(inferiorEsquerdo) or
temColisaoComMapa(inferiorDireito) then
else
jogador.y = jogador.y + meuDesclocamentoY
end
end
function movimenta()
-- cima
if btn (0) then
tentaMover(-1)
end
-- baixo
if btn (1) then
tentaMover(1)
end
--esqueda
if btn (2) then
jogador.x = jogador.x - 1
end
--direita
if btn (3) then
jogador.x = jogador.x + 1
end
end
function desenhaMapa()
map(0, --posicao x no mapa
0, -- posicao y no mapa
constantes.LARGURA_DA_TELA, --larugura
constantes.ALTURA_DA_TELA,
0,
0)
end
function desenhaJogador()
spr(jogador.sprite,
jogador.x - 8,
jogador.y - 8,
0, -- cor de fundo
1, -- escala
0, -- espelhar
0, --rotacionar
2, -- quantos blocos para a direita
2) -- quantos blocos para baixo
end
function desenha ()
cls ()
desenhaMapa()
desenhaJogador()
print (jogador.y)
end
function TIC()
movimenta()
desenha ()
end