Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

eu não consigo achar o erro

aparece isso para mim

>[string "--...."]:318: attempt to index a nil value (global 'tela') stack traceback: [string "--...."]:318: in function 'TIC'

só que eu não consigo entender onde o código está errado, ja peguei o projeto completo do professor para poder comprar e mesmo assim não consegui achar nada.

segue algumas partes do código

function atualizaOJogo()

    local animacaoJogador = {
        {256, 258},
        {260, 262},
        {264, 266},
        {268, 270}
    }

    local direcao = {
        {deltaX = 0, deltaY = -1},
        {deltaX = 0, deltaY = 1},
        {deltaX = -1, deltaY = 0},
        {deltaX = 1, deltaY = 0}
    }

    for tecla = 0,3 do
        if btn(tecla) then
            local quadros = animacaoJogador[tecla + 1]
            local quadro = math.floor(jogador.quadroDeAnimacao)
            jogador.sprite = quadros[quadro]
            tentaMoverPara(jogador, direcao[tecla+1])
        end
    end

    verificaColisaoObj(jogador, {x = jogador.x, y = jogador.y})

    for indice, objeto in pairs(objetos) do
      if objeto.tipo == constantes.inimigo then
          atualizaInimigo(objeto)
      end
   end
end
function desenhaIntro()
    cls()
    spr(constantes.sprTitulo,
        80,
        12,
        8,
        1,
        0,
        0,
        constantes.sprTituloLargura,
        constantes.sprTituloAltura)

    spr(constantes.sprAlura,
        94,
        92,
        8,
        1,
        0,
        0,
        constantes.sprAluraLargura,
        constantes.sprAluraAltura)

    print("www.alura.com.br", 78, 122, 12)
end
function atualizaIntro()
    if btn(4) then
        sfx (constantes.sfxInicio,
            72,
            32,
            0,
            8,
            0)
        tela = tela.jogo
    end
end
function TIC()
    tela.atualiza()
    tela.desenha()
end
tela = {
    inicio = {
        atualiza = atualizaIntro,
        desenha = desenhaIntro
    },

    jogo = {
        atualiza = atualizaOJogo,
        desenha = desenhaOJogo
    }
}
function inicializa()

   objetos = {}
    local chave = criaChave (3, 3)
    table.insert(objetos, chave)

    local porta = criaPorta (16, 7)
    table.insert(objetos, porta)

   local inimigo = criaInimigo (22, 12)
   table.insert(objetos, inimigo)

   jogador = {
       tipo = constantes.jogador,
        sprite = 260,
        x = 110,
        y = 68,
        corDeFundo = 2,
        quadroDeAnimacao = 1,
        chaves = 0
    }
    tela = tela.inicio
end
1 resposta
solução!

eu tentei trocar as constantes da tela para que eu conseguisse diferenciar melhor e assim eu consegui fazer funcionar