Transcript
Construindo
com JOGOS
JavaScript
Diego Oliveira
Sum´ ario 1 O Que Vamos Fazer?
3
2 Come¸ cando 2.1 O Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Desenhando a Barra . . . . . . . . . . . . . . . . . . . . . . .
5 6 7 8
3 Teclado e Movimento 3.1 Teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Movimento da Barra . . . . . . . . . . . . . . . . . . . . . . .
9 9 10
4 Movimento da Bola e Colis˜ oes 11 4.1 Pontua¸c˜ ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 5 Tempo no Jogo
18
6 Tela Final
19
Aviso! Essa apostila ´e uma esp´ecie de continua¸c˜ao da apostila do PONG, que pode ser baixada de gra¸ca em:
https://pt.azdoctips.com/doc/153261572/1/PONG-COM-HTML5-E-JAVASCRIPT ´ poss´ıvel que se prossiga sem a leitura da apostila anterior, contudo E as explica¸c˜ oes desta apostila s˜ao menos detalhadas. Assim, uma ou outra passagem pode parecer um tanto mal explicada. Em outras palavras, para prosseguir ´e necess´ ario um pr´e-requisito um pouco maior do que a simples no¸c˜ ao de l´ ogica de programa¸c˜ao.
2
1
O Que Vamos Fazer?
O jogo que ser´ a feito ´e bastante simples, basicamente trata-se de uma barra que tenta aparar bolas que caem do “c´eu”. Se vocˆe j´a jogou Fruit Basket ou o Fruit Collection no Android. A ideia ´e praticamente a mesma.
Fruit Basket: apanhando frutas na cesta. O jogo criado ter´ a mais ou menos a seguinte cara.
Scoore: 0
Tela inicial
3
Tela final Eu digo “mais ou menos” porque o resultado final depende do navegador que vocˆe estar´ a usando. As imagens acima, por exemplo, s˜ao do Firefox. A jogabilidade ser´ a bastante simples, e muita semelhante `a do PONG. Enquanto a barra se move para direita e esquerda tentamos capturas as bolas que caem. Sendo que cada bola vale 5 pontos e existe um tempo limite para que essas bolas seja coletadas.
4
2
Come¸ cando
Abra seu editor de texto (eu sugiro o sublime text) e escreva uma estrutura bem b´ asica de um arquivo HTML.
N˜ ao ´e nem de longe meu objetivo ensinar HTML mas, como necessitamos saber o b´ asico dele segue uma r´apida explica¸c˜ao do que foi escrito acima.
• O ´e uma tag padr˜ao do HTML5 e informa ao navegador que o que est´a sendo escrito ´e HTML5. • A tag marca o in´ıcio do c´odigo HTML enquanto marca seu fim. Al´em disso informamos na tag html que a l´ıngua que usaremos ´e o portuguˆes. No entanto, essa informa¸c˜ ao ´e u ´til apenas para os indexadores de busca de modo que se desejarmos podemos substituir por apenas . • A tag permite a inclus˜ao de textos com acentos ou cedilhas. Se vocˆe n˜ao for incluir texto junto do seu jogo seu uso ´e dispens´avel. • A tag marca ´a ´area de cabe¸calho do seu c´odigo. • A tag , como o pr´oprio nome diz, marca o in´ıcio do t´ıtulo de sua p´ agina enquanto marca o fim. • As tags e marcam o in´ıcio e fim do corpo do c´ odigo HTML a maior parte do c´odigo que ser´a escrito ficar´a nesta ´ area. 5
2.1
O Canvas
Vamos come¸car criando a tela do jogo. Essa tela ser´a o elemento Canvas. O Canvas ´e um elemento novo presente apenas no HTML5. Podemos pensar nele como uma esp´ecie de folha de papel em branco. Nessa folha ´e que desenhamos os elementos do jogo. Existe mais de uma forma de criar o elemento Canvas. A mais simples ´e utilizando o pr´oprio HTML.
Outra forma ´e usando JavaScript.
Em ambos os casos vocˆe deve informar os valores num´ericos dos atributos width e height (largura e a altura) que o elemento Canvas ter´ a. O id (identificador) ´e uma esp´ecie de endere¸co do Canvas. Necessitamos dele pois uma p´agina html pode ter mais de um Canvas. No primeiro caso, podemos informar os atributos width e height via Css, o que n˜ ao recomendo. O resultado disso quase sempre s˜ ao imagens feias e desfocadas no seu jogo. Vocˆe pode usar qualquer uma das duas formas apresentadas para criar o Canvas, ou at´e outra se desejar. Contudo, a cria¸c˜ao do Canvas por meio de javascript ´e uma abordagem mais profissional. Ela tamb´em possui algumas vantagens sobre as outras. Ent˜ ao, para come¸car vamos criar uma tela de 600 x 600 pixeis sem usar a tag