Função em javascript para checar colisão
A alguns dias atrás eu estava pesquisando sobre desenvolvimento de jogos 2D com javascript, assistindo algumas aulas, vi que sempre precisava de uma função que faz a checagem de colisão, para games aonde se tem obstaculos e você precisa desviar, mas serve pra qualquer coisa que necessite a checagem de colisão, segue o codigo:
detectCollisionEl = function(el1, el2) { el1.offsetBottom = el1.offsetTop + el1.offsetHeight; el1.offsetRight = el1.offsetLeft + el1.offsetWidth; el2.offsetBottom = el2.offsetTop + el2.offsetHeight; el2.offsetRight = el2.offsetLeft + el2.offsetWidth; return !((el1.offsetBottom < el2.offsetTop) || (el1.offsetTop > el2.offsetBottom) || (el1.offsetRight < el2.offsetLeft) || (el1.offsetLeft > el2.offsetRight)) }
a função é bem simples de se usar, vc tem como parametros as duas div's que quer verificar a colisão.
E lembrando que não foi eu que desenvolvi, pesquisei e achei no stack.
No passado eu estudei bastante sobre colisão de objetos e é algo muito legal de programar, mas também num jogo de plataforma começa a ficar muito difícil decidir o que fazer numa colisão, como por exemplo a colisão com uma parede, se ela foi exata, se por conta do framerate fez um objeto atravessar o outro (e daí nesse caso decidir voltar o objeto).
Depois de estudar isso eu entendo perfeitamente como que 100% dos jogos tem problema de "wall clipping".