segunda-feira, 26 de janeiro de 2015

Hardcore Devel #2

Hoje estamos introduzindo mais um projeto. O fórum RPGlogia.

Jogos de rpg no estilo PBF tem um certo público, e nem todos os fóruns atendem a todos os usuários. Esse aqui foi criado com o intuito de ser simples para usuários e administradores. Mas como atingir tal simplicidade? Para fazer um fórum extremamente leve precisamos nos focar apenas no essencial.

Isso nos impede de utilizar uma ferramenta de fórum já consolidada como o phpbb. Essas soluções prontas precisam estar preparadas para muitos casos especiais que são disjuntos do nosso caso específico.

Então estamos criando um fórum do zero. Alguns diríam até que estamos reinventando a roda, mas aprender a hackear o código de uma solução pronta leva mais tempo do que criar uma nova. Como a idéia do projeto é que os administradores tenham domínio total sobre o código e como as coisas são feitas, essa abordagem se mostra a mais efetiva.

Recentemente adicionamos o Konami code ao fórum. Utilizamos javascript para isso. Basta apenas escutar os eventos na janela e concatená-los. Isso é resolvido em poucas linhas de código. Na verdade copiamos a ideia do site Geek and Hype. Segue abaixo o código:

if(window.addEventListener){
var kkeys=[],konami="38,38,40,40,37,39,37,39,66,65";
var konamed = false;
window.addEventListener("keydown",function(e){
kkeys.push(e.keyCode);
if(kkeys.toString().indexOf(konami)>=0 && !konamed){
//Faça algo aqui
konamed = true;
}
},true);
}

O que fazemos aqui é basicamente escutar eventos do teclado. colocá-los em uma string e quando detectamos o konami code, acontece alguma coisa. Repare que o código aparece como uma string com números. Esses números são os códigos das teclas que são pressionadas.

Note que esse código possui uma série de falhas. Pressionar teclas indefinidamente vai fazer a memória disso aqui explodir, e isso não é bom. Se alguém ficar lendo e relendo a páginas muitas vezes provavelmente vai se deparar com algo não muito bom!

Fiquem ligados para mais desenvolvimento de projetos por aqui!

Nenhum comentário:

Postar um comentário