Adicionei um contador de pulos para limitar os pulos a 2; a variavel impulso recebe novamente 50 toda vez que o personagem for pular, indicando que o personagem teve um novo salto; na hora de saltar o programa vai esperar 100 milisegundos a mais do que os normais 40, para que o intervalo entre os dois eventos da barra de espaço sejam visiveis e propositais e não acidentais.
if(key[KEY_SPACE] && (chao || qtdPulo < 2)){
chao = false;
impulso = 50;
qtdPulo++;
rest(100);
}
O codigo completo...