1
resposta

problema com o codigo tentaMoverPara

quando eu dou run no tic 80 eu clico pra cima ele sai e quando clico pra baixo ele tbm sai voces podem me ajudar por favor

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 tentaMoverPara(meuDeslocamentoY)
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 + meuDeslocamento
    end

end

function atualiza()



-- cima
if btn(0) then
tentaMoverPara(-1)
end                
-- baixo
if btn (1) then
tentaMoverPara(1)
    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

eu nao sei oq esta de errado me ajudem

1 resposta

Olá Patricia, o problema deve ser apenas a variável meuDeslocamento que está na linha 50 (jogador.y = jogador.y + meuDeslocamento), o erro é que essa variável não existe, o nome correto é meuDeslocamentoY, basta adicionar esse Y no final do nome que deve funcionar.