Transcript
Programando
com PONG
DHTML Jogador 1:
Jogador 2:
Diego A. Oliveira
Sumário 1 O Que é Esse DHTML? 2 E Qual a Desvantagem do DHTML? 2.1 Por Que O PONG? . . . . . . . . . . . 2.2 O Que Vamos Precisar? . . . . . . . 2.3 O Canvas . . . . . . . . . . . . . . . . 2.4 Visualizando o Canvas . . . . . . . . 2.5 Desenho no Canvas . . . . . . . . . 2.6 Final de Seção . . . . . . . . . . . . .
4
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
4 . 5 . 5 . 5 . 8 . 9 . 13
3 OBJETOS NO JAVASCRIPT 14 3.1 O Objeto Bola . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Placar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 Final de Seção . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4 O Loop de Animação 24 4.1 Desenhando Linhas . . . . . . . . . . . . . . . . . . . . . . 26 4.2 Final de Seção . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5 DETECÇÃO DE TECLA 30 5.1 Final de Seção . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6 MOVIMENTO DAS BARRAS 35 6.1 Explicando o Que Aconteceu . . . . . . . . . . . . . . . . . 36 6.2 Final de Seção . . . . . . . . . . . . . . . . . . . . . . . . . . 39 7 MOVIMENTO DA BOLA E COLISÃO 42 7.1 Velocidade da Bola . . . . . . . . . . . . . . . . . . . . . . . 46 7.2 Fim de Seção . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 8 Placar 51 8.1 Final de Seção . . . . . . . . . . . . . . . . . . . . . . . . . . 53 9 MELHORANDO A PERFORMASSE [Opcional]
56
10 LIVROS INDICADOS
58
Introdução e Avisos Se você já fez disciplinas como algoritmo, lógica de programação ou mesmo cálculo numérico então você já deu o primeiro passo para o mundo da programação, isso mesmo o primeiro passo. Isso porque estas disciplinas trabalham apenas o básico e estão bem longe do que se deseja para formar um programador de nível mediano. Se no entanto, você nunca teve nenhum contato com nenhuma linguagem pare a leitura desta apostila e procure em uma biblioteca, ou mesmo na internet aulas sobre lógica de programação. Todos os livros ou tutoriais sobre jogos, por mais básico que sejam e venha com frases como: "aprenda passo a passo", "a partir do básico", "for dummies" e etc., requerem um conhecimento razoável pelo menos em lógica de programação. E se você não o têm, não conseguirá entender completamente o seu conteúdo. E esta apostila não é diferente.
3
1
O Que é Esse DHTML?
O DHTML (Dinamic Hiper Text Markup Language) é a junção de três outras linguagens o JavaScript, o Css e o HTML. Mas, jogos em DHTML na verdade levam muito pouco de HTML e Css a maior parte do trabalho fica mesmo com o JavaScript. A vantagem do JavaScript em relação as demais linguagens é que ela é interpretada pelo browser. O que significa que desde que você tenha um OS com um browser moderno instalado será capaz de testar seu trabalho. Outra vantagem é que você não precisa instalar nada em sua máquina, pois você necessitará apenas de um editor simples de texto. Por fim o JavaScript tem uma excelente curva de aprendizado. São tantos recursos que em pouco tempo você já será capaz de fazer coisas impressionantes.
2
E Qual a Desvantagem do DHTML?
Existem várias linguagens de programação e apesar do que muita gente acredita, eu já vi até professores universitários afirmarem isso, elas não são todas iguais. Cada linguagem possui uma característica própria que facilita uma ou outra tarefa. Temos que nos lembrar que o JavaScript foi criado para dar interação a páginas Web e não para criação de jogos. Assim, temos de lidar com algumas limitações. Por exemplo:
O JavaScript não trabalha com ambientação 3D; Como é interpretada pelo browser possui as limitações gráficas do browser; O debug é difícil; É necessário testar seus códigos em vários navegadores.
A linguagem mais indicada para criação de jogos, segundo alguns profissionais, é a linguagem C. Esta linguagem é normalmente usada para programação de sistemas que envolvam processamento pesado. Mas, se você pretende desenvolver jogos simples que não exijam muito do hardware pode perfeitamente utilizar-se do JavaScript. 4
2.1
Por Que O PONG?
O PONG é um jogo relativamente simples de programar, por isso muitos livros de programação o apresentam em suas páginas finais. Sendo simples é um excelente ponto de partida para quem está começando.
2.2
O Que Vamos Precisar?
Para desenvolver com o DHTML você precisa apenas de um navegador atualizado e um editor de texto simples. Eu recomendo o Sublime Text como editor de texto e o Google Chrome como navegador. No entanto, você pode usar o bloco de notas e o IE. O problema é que o IE só conseguem interpretar bem o DHTML a partir da sua 9 versão (IE9). O que você não deve fazer é usar o Word ou WordPad como editores. Isso porque esses programas têm o habito de "mudar" o texto que escrevemos. Como já disse, o HTML5 é uma tecnologia que ainda está sendo implementada nos navegadores de modo que é bom ter um segundo navegador para testar. Como segundo navegador eu recomendo o Firefox. Um programa que funciona bem no Chrome e no Firefox normalmente bem funciona nos demais.
2.3
O Canvas
O Canvas é uma tecnologia presente nas especificações do HTML5 e já está implementada em todos os navegadores inclusive no IE9. Essa tecnologia surgiu com a proposta de adicionar mais interatividade a páginas web, querendo inclusive substituir o Flash como recurso multimídia. A forma mais simples de se pensar no Canvas é como uma folha de papel em branco. Nesta folha é que "desenhamos" ou colocamos os elementos do jogo. Existe mais de uma forma de criar o elemento Canvas em uma página HTML, veja:
5
USANDO A TAG CANVAS: 1 2 3
USANDO JAVASCRIPT: 1 2 3 4 5 6 7 8
No primeiro exemplo criamos o elemento Canvas usando a tag