Preciso de ajuda ou pelo menos um ponteiro com a colisão em um jogo im fazendo para se divertir

votos
1

Então eu fiz um jogo, feito um mapa, e tudo está funcionando bem. O problema é que eu fiz um sistema de colisão muito burro que trabalhou pela primeira vez, mas eu estou correndo em problemas.

Estou usando posições X e Y do jogador para desenhar caracteres e usando jogadores Tilex e Tiley (x / 32 e y / 32) para detectar colisão. Heres um quadro que explica o meu problema: o

A Caixa vermelha é jogadores Tilex e Tiley em coordenada. Jogador ainda se move beyound a parede onde a colisão deve acontecer.

O does not Tilex deixe aumenta / diminui aconteceria se eles colidem com uma telha sólido, mas o jogador X e Y (Sprite) ainda se move para além de que a caixa para mais 31 pixels. Eu não tenho ideia de como corrigir isso. Minha imagem jogador não está centrada, seu desenhada no canto superior direito.

Esta é a im código atual usando:

    for i=1, #lsx_map1 do 
        if math.floor(player.fx/32) == lsx_map1[i] and math.floor(player.fy/32) == lsy_map1[i] then
            player.speedx = 0
            player.speedy = 0   
            print(COLISSION DETECTED ON ..player.x.. ..player.y)
        else
            print(colVar)
            colVar = colVar+1
        end
    end
    if colVar == #lsx_map1 then     
        player.x = player.fx
        player.y = player.fy
    end

lsx_map1 é o número de peças sólidas, e colVar deve ser igual a esse número se colisão não acontece. Em caso de colisão acontece, esse aumento número does not por um, e então nada acontece. Pedir mais detalhes que você precisa se você quiser me ajudar, mas você precisa de mais informações.

Qualquer ajuda ou dicas seria apreciada. Obrigado.

Publicado 02/12/2019 em 23:54
fonte usuário
Em outras línguas...                            


1 respostas

Preciso de ajuda ou pelo menos um ponteiro com a colisão em um jogo im fazendo para se divertir

votos
1

Então eu fiz um jogo, feito um mapa, e tudo está funcionando bem. O problema é que eu fiz um sistema de colisão muito burro que trabalhou pela primeira vez, mas eu estou correndo em problemas.

Estou usando posições X e Y do jogador para desenhar caracteres e usando jogadores Tilex e Tiley (x / 32 e y / 32) para detectar colisão. Heres um quadro que explica o meu problema: o problema

A Caixa vermelha é jogadores Tilex e Tiley em coordenada. Jogador ainda se move beyound a parede onde a colisão deve acontecer.

O does not Tilex deixe aumenta / diminui aconteceria se eles colidem com uma telha sólido, mas o jogador X e Y (Sprite) ainda se move para além de que a caixa para mais 31 pixels. Eu não tenho ideia de como corrigir isso. Minha imagem jogador não está centrada, seu desenhada no canto superior direito.

Esta é a im código atual usando:

    for i=1, #lsx_map1 do 
        if math.floor(player.fx/32) == lsx_map1[i] and math.floor(player.fy/32) == lsy_map1[i] then
            player.speedx = 0
            player.speedy = 0   
            print("COLISSION DETECTED ON "..player.x.." "..player.y)
        else
            print(colVar)
            colVar = colVar+1
        end
    end
    if colVar == #lsx_map1 then     
        player.x = player.fx
        player.y = player.fy
    end

lsx_map1 é o número de peças sólidas, e colVar deve ser igual a esse número se colisão não acontece. Em caso de colisão acontece, esse aumento número does not por um, e então nada acontece. Pedir mais detalhes que você precisa se você quiser me ajudar, mas você precisa de mais informações.

Qualquer ajuda ou dicas seria apreciada. Obrigado.

Respondeu 02/12/2019 em 23:54
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more