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

o botão não responde

``` esse eu já resolvi agora estou com um problema nesse aperto as setinhas e não responde:

-- title: jogo -- author: Rafael Velho Garcia -- desc: short description -- script: lua

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

function TIC() 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

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 } if temColisaoComMapa(superiorEsquerdo) or

temColisaoComMapa(superiorDireito) then -- colisao else

jogador.y = jogador.y -1

end end

if btn(1) then jogador.y = jogador.y +1 end

if btn(2) then jogador.x = jogador.x -1 end

if btn(3) then jogador.x = jogador.x +1 end end cls() map(0, -- possicao do x no mapa 0, -- posicao do y no mapa 240, -- quanto desenhar x 138, -- quanto desenhar y 0, 0) 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) -- quantso blocos para baixo

print(jogador.y) print(blocoId, 0, 16)

3 respostas

Olá Luciano,

Testei o seu código aqui e ele está funcionando, você consegue dar mais detalhes do problema que você está tendo? Por exemplo, quais são as teclas que você pressionando?

Com esse código, se você pressionar a seta para cima no teclado, o seu sprite deve se mover para baixo.

esse eu já resolvi agora estou com um problema nesse aperto as setinhas e não responde:

-- title:  jogo
-- author: Rafael Velho Garcia
-- desc:   short description
-- script: lua

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

function TIC()
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   



        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 
                }
                if temColisaoComMapa(superiorEsquerdo) or

                   temColisaoComMapa(superiorDireito) 
                            then
                            -- colisao
                            else

                                    jogador.y = jogador.y -1

                            end
                            end



        if  btn(1) then 
         jogador.y = jogador.y +1
     end    

        if  btn(2) then 
     jogador.x = jogador.x -1
     end    

        if  btn(3) then 
     jogador.x = jogador.x +1
     end
        end
 cls()
        map(0, -- possicao do x no mapa
                0, -- posicao do y no mapa
                            240, -- quanto desenhar x
                            138, -- quanto desenhar y
                            0,
                            0)
    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) -- quantso blocos para baixo

     print(jogador.y)
         print(blocoId, 0, 16)

Olá Luciano,

No código acima, a função temColisaoComMapa() foi definida dentro da função TIC(). Ela precisa ser definida antes ou depois dessa função. Algo assim:

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

function TIC()
  -- aqui dentro você coloca o código dos botões e desenho  da tela
end