Olá! Estou tentando fazer a refatoração do codigo mas quando coloco os 4 pontos no if btn(0)
aparece erro.
jogador = {
sprite = 32,
x = 120,
y = 68
}
constantes = {
LARGURA_DA_TELA = 240,
ALTURA_DA_TELA = 138
}
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 atualiza()
-- cima
if btn(0) then
meuDeslocamentoY = 1
superiorEsquerdo = {
x = jogador.x - 8,
y = jogador.y - 8 + meuDeslocamentoY
}
superiorDireito = {
x = jogador.x + 7,
y = jogador.y - 8 - meuDeslocamentoY
}
inferiorDireito = {
x = jogador.x + 7,
y = jogador.y + 7 + meuDeslocamentoY
}
inferiorEsquerdo = {
x = jogador.x - 8,
y = jogador.y + 7 + meuDeslocamentoY
}
if temColisaoComMapa(superiorEsquerdo) or
temColisaoComMapa(superiorDireito) or
temColisaoComMapa(inferiorEsquerdo) or
temColisaoComMapa(inferiorDireito) then
--colisao!!
else
jogador.y = jogador.y - 1
end
end
-- baixo
if btn(1) then
meuDeslocamentoY = 1
superiorEsquerdo = {
x = jogador.x - 8,
y = jogador.y - 8 - 1
}
superiorDireito = {
x = jogador.x + 8,
y = jogador.y - 8 - 1
}
inferiorDireito = {
x = jogador.x + 7,
y = jogador.y + 7
}
inferiorEsquerdo = {
x = jogador.x - 8,
y = jogador.y + 7 + meuDeslocamento
}
if temColisaoComMapa(inferiorDireito) or
temColisãoComMapa(inferiorEsquerdo) or
temColisaoComMapa(superiorDireito) or
temColisaoComMapa(superiorEsquerdo) then
-- colisao
else
jogador.y = jogador.y + 1
end
end
-- esquerda
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, -- quanto desenhar x
constantes.ALTURA_DA_TELA, -- quanto desenhar y
0, -- em qual ponto colocar o x
0) -- em qual ponto colocar o y
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 direita
2) -- quantos blocos para esquerda
end
function desenha()
cls()
desenhaMapa()
desenhaJogador()
print(jogador.y)
end
function TIC()
atualiza()
desenha()
end