1
resposta

um erro que não está lá

sempre que uso o "run" para testar, aparece um erro falando que falta o "{" , mas esta lá como podem ver

-- title:  fuga das sombra
-- author: joao guilherme
-- desc:   RPG de acao 2d
-- script: lua

jogador = {
 sprite = 32,
 x = 120,
    y = 68
}

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)
   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 + meuDeslocamentoY
   }

   inferiorEsquerdo = {
      x = jogador.x - 8,
      y = jogador.y + 7 + meuDeslocamento
   }

   if temColisaoComMapa(inferiorDireito) or
      temColisaoComMapa(inferiorEsquerdo) or
      temColisaoComMapa(superiorDireito) or    
      temColisaoComMapa(superiorEsquerdo) then
      -- colisao

   else
      jogador.y = jogador.y + meuDeslocamentoY
   end
end

function atualiza()

 -- cima
 if btn(0) then
      tentaMoverPara(-1)
        end
        -- baixo        
  if btn(1) then
   tentaMovePara(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
                     240, -- quanto desenhar x largura
                     138, -- quanto desenhar y altura
                     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 pra direita
                        2) -- quantos blocos pra baixo
end                        

function desenha()
  cls()    
  desenhaMapa()
        desenhaJogador()


        print(jogador.y)

end


function TIC()
     atualiza()
        desenha()        


end
1 resposta

Olá Evandro, peço desculpas pela demora na resposta.

O programa não entendeu que você fechou o } porque faltou uma , em uma linha anterior, o valor correto de inferiorDireito seria:

inferiorDireito = {
      x = jogador.x + 7, -- faltou essa vírgula aqui
      y = jogador.y + 7 + meuDeslocamentoY
}

Ainda tem um segundo problema depois de corrigir isso, em inferiorEsquerdo foi utilizada a variável meuDeslocamento mas ela não existe, o correto seria meuDeslocamentoY. Por último na chamada do tentaMoverPara(1) acabou ficando um erro de digitação, foi escrito faltando um r assim tentaMovePara, basta adicionar o r para corrigir.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software