Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

A string espera } para fechar antes de eu acabar ela

Todas as vezes que tento rodar eu jogo ,depois da ultima aula 6 ,da um erro deste jeito :__ [string"..."]:299 : '}' expected (to close '{' at line 298 )near '='

Sendo que meu codigo esta assim : local codigo{ colisoes = { Constantes.INIMIGO = fazColisaoDoInimigoComAPorta, Constantes.JOGADOR = fazColisaoDoJogadorComAPorta }, } Que posso fazer para saber o que está acontecendo ?Como posso resolver ?

3 respostas

Olá Luciano,

Parece que está faltando um operador de atribuição = logo após a palavra codigo. Do jeito que está, a variável codigo está sendo declarada mas não está recebendo nenhum valor pela falta do operador.

Desculpa a palavra código era só para dizer que esta dentro de uma função :

function  criaPorta (coluna,linha)
local porta = {
sprite = Constantes.SPRITE_PORTA,
x = coluna * 8 +8,
y = linha *8 +8,
corDeFundo = 6,
funcaoDeColisao = fazColisaoDoJogadorComPorta,
colisoes = { 
Constantes.INIMIGO =fazColisaoDoInimigoComAPorta,
Constantes.JOGADOR = fazColisaoDoJogadorComAPorta
},}
solução

Opa,

Nesse caso, o erro se encontra quando utilizamos as constantes Constantes.INIMIGO e Constantes.JOGADOR dentro da declaração do atributo colisoes.

A linguagem Lua não consegue substituir a expressão Constantes.INIMIGO pelo seu valor pra definir o nome de um atributo. O correto nesse caso seria utilizar diretamente o valor de cada constante:

colisoes = { 
  INIMIGO = fazColisaoDoInimigoComAPorta,
  JOGADOR = fazColisaoDoJogadorComAPorta
}