• Nenhum resultado encontrado

Rayner Gomes Sousa - Univesidade Federal do Piauí Campus Senador Helvídio Nunes Barros Sistemas de Informação

N/A
N/A
Protected

Academic year: 2021

Share "Rayner Gomes Sousa - Univesidade Federal do Piauí Campus Senador Helvídio Nunes Barros Sistemas de Informação"

Copied!
11
0
0

Texto

(1)

Correção dos Emails

Rayner Gomes Sousa - raynergomes@hotmail.com

Univesidade Federal do Piauí

Campus Senador Helvídio Nunes Barros

Sistemas de Informação

Ana Maria Koch - anamariakoch@yahoo.com.br

Universidade Federal do Piauí

Campus Senador Helvídio Nunes Barros

Curso de História

(2)

Princípio do Desenvolvimento de Jogos com HTML5

Autor 1*1

Autor 2 *2

Instituição 1

Instituição 2

Figura 1: Exemplos com uso do recurso de Canvas do HTML5.

Resumo

Este artigo descreve a fase inicial do estudo e avaliação da linguagem HTML versão 5 como plataforma de desenvolvimento de jogos pela Internet. Inicialmente o Grupo de Pesquisa Rede com Literatura e História (RELIH) fundamentou-se no desenvolvimento de jogos com a tecnologia proprietária Adobe Flash, porém esta tecnologia impõe um custo financeiro não atrativio para o Grupo de Pesquisa. O HTML5 é a versão mais recente do HTML e já suportadado pela grande maioria dos novos navedadores Web, porém suas pontecialidades precisam ser assimiladas e dominadas resultando assim no foco deste trabalho.

Palavras Chaves: Desenvolvimento de jogos,

HTML5, Internet.

Contato dos Autores:

1: autor 1@email.com 2: autor 2@email.com

1. Introdução

A atividade de elaboração de jogos recreativos em interface digital proposta e em andamento no Projeto

História em jogos: Brasil colônia, com participação

de dois bolsistas PIBIC/CNPq (Cf. Edital UFPI 2009/2010) tem um resultado importante obtido em 9 meses. O trabalho conjunto de um Estudante de História e um de Sistemas de informação iniciou com o estudo dos respectivos conteúdos: Brasil colonial:

expansão portuguesa 1100/1550; e programas Adobe Flash Pro CS4, Photoshop CS4 e Fireworks (para

melhoramento de imagens), ActionScript 2.0 (para desenvolvimento de games e linguagem de programação). O desenho dos jogos foi definido pela organização em séries (mapas do mundo medieval; monstros marinhos; reis/território português; instrumentos de navegação; embarcações, navegadores, fortes portugueses, especiarias e rotas

(Marco Pólo, B. Dias, F. Magalhães), indígenas no território brasileiro, capitanias, primeira ocupação de

fato, mapas do Brasil e América do período.

O produto computacional gerado pelo projeto História em jogos é um conjunto de programas utilizados na atividade de recreação, para o usuário final o interesse maior é no entretenimento, porém a forma de como os jogos é criada pode provar frustrações inesperadas. Um problema conhecido é o fato do computador do usuário não possuir os softwares necessários para a execução dos jogos. Apesar destes problemas podem ocorrer a sua dimensão é indeterminada, vários fatores sociais e econômicos levam a um perfil de configuração do computador diferente, imaginar a priori se um usuário terá os recursos computacionais essenciais é um problema que pode aniquilar a qualidade dos jogos recreativos.

Como os jogos desenvolvidos pelo projeto História em jogos: Brasil colônia utiliza como ambiente de execução os Navegadores para World

Wide Web (Web), os mesmos foram desenvolvidos

baseados na tecnologia Flash produzida pela empresa Adobe. O uso desta tecnologia apesar de ser livre os Ambientes de Desenvolvimento Integrado (Integrated

Development Enviromment - IDEs) e os programas de

compilação (geradores de código executável para a máquina), utilizados do lado do produtor de jogos são pagos, onerando a programação e consequentemente dificultando a criação dos jogos. Do lado do cliente a visualização dos jogos em Flash necessita do plugin no navegador, a instalação deste plugin é dificultada pelos seguintes pontos: (i) a maioria dos navegadores não vem com o plugin do Flash instalado devido às imposições das leis comerciais; (ii) o usuário pode não ter permissões na máquina para a instalação do plugin; (iii) a instalação do plugin pela Internet pode consumir muito tempo irritando o usuário. Do lado dos desenvolvedores o preço na compra das ferramentas de

(3)

desenvolvimento pode ser um impedimento. O grupo de trabalho do Projeto Historia em jogos: Brasil colônia, vinculado ao Laboratório de Historia em interface digital (LHID) e ao Grupo de Pesquisa Rede com Literatura e Historia (RELIH) projeta que os jogos de educacionais criados possam ser usados em Tabblets e jogos feito em Flash não são atrativos para estas novas gerações de computadores ultra-portateis por consumirem muita bateria.

Por fim, a procura e/ou a criação de novas tecnologias livres para a construção de jogos recreativos a ser editados na rede mundial de computadores se torna um objetivo atraente tanto pela atividade intelectual e acadêmica envolvida no processo quanto pela solução da questão de obediência a legislação brasileira.

Este trabalho consiste em estudar a linguagem de marcação Hypertext Markup Text Language versão

5 (HTML5), constituída para criação de páginas na

rede mundial de computadores com o recurso a animação gráfica integrado. Essa forma de programação tem como ponto importante o favorecimento da interatividade quando do acesso a páginas que apresentam esses recursos.

2. Trabalhos Relacionados

A Internet nasceu em 1969 dentro dos laboratórios da ARPA (Advanced Research Projects Agency), no início tinha o objetivo de ser uma rede de alta disponibilidade. Porém atualmente a Internet possui uma conotação mais próxima de um subproduto proveniente dela a Web. A Web é uma sub-arquitetura da Internet formada principalmente pelo protocolo HTTP (HyperText Transfer Protocol ) e a linguagem de marcação HTML. O HTML nasceu em 1991 no CERN (European Council for Nuclear Research), na suíça. Seu criador, o inglês Tim Berners-Lee, 44 anos, a concebeu unicamente como uma linguagem que serviria para interligar computadores do laboratório e outras instituições de pesquisa e exibir documentos científicos de forma simples e fácil de acessar [Tanembaum 2003].

Esta forma fácil de visualizar e trocar documentos é a razão do grande sucesso da Internet, e este ambiente é chamado simplemente de Web. A linguagem de marcação HTML evoluiu desde sua criação, passando por várias versões até chegar na versão 5. Durante sua evolução foi agromerando novas tecnlogias como o CSS, XML e incorporação do JavaScript.

Segundo Ed. Aurelio [Ed. Aurelio 2006] Evolução do HTML cosistiu nas principais fases:

• 1992 - Primeira aparição do HTML;

• 1993 - HTML+: Algumas definições da aparência, tabelas, formulários;

• 1994 - HTML 2.0: Padronização para os características principais;

• 1994 - HTML 3.0: Uma extensão do HTML+ entendido como um rascunho de padrão;

• 1995 - HTML 3.2: Netscape e Internet Explorer definem seus próprios padrões baseados nas implementações correntes;

• 1995 - JavaScript: criada por Brendan Eich da Netscape como uma extensão do HTML para o browser Navigator v2.0. JavaScript é uma linguagem de roteiro (script) baseada em objetos e permite que sejam manipulados através de eventos dinâmicos que faltavam ao HTML;

• 1996 - CSS1: Em dezembro deste ano é apresentada pela primeira vez a Folha de Estilo, criada para complementar a linguagem HTML. Possuía uma formatação simples e cerca de 60 propriedades;

• 1997 - HTML 4.0: São lançados os browsers Netscape v4.0 (agosto) e Internet Explorer v4.0 (outubro) que apresentaram um conjunto de tecnologias (CSS, JavaScript/VBScript e DOM) que juntas disponibilizaram diversos recursos tornando o HTML dinâmico. Surge então o DHTML;

• 1998 - CSS2: Em maio é lançado a segunda versão da Folha de Estilo que, além de incluir todas as propriedades do CSS1 ainda apresenta por volta de 70 novas propriedades;

• 1999 - HTML 4.01: Alguma modificações da versão anterior;

• 2000 - XHTML 1.0: É criado e consiste de uma versão XML do HTML v4.01

A evolução do HTML é fomentada pela constante necessidade da industria, comércio em recursos tecnológicos que permitam criar páginas Web cada vez mais leves, fáceis de ser construídas, com grande possibilidade de integração com o usuário, mecanismos que permitam usar menos tráfego de rede, processador e memória sem perder qualidade visual e interoperabilidade. Para os usuários a evolução do HTML deve possibilitar a criação de sites cada vez mais ricos em componentes audio-visual e com uma excelente usabalidade [W3C 2010a].

O HTML5 [W3C 2010b] surge com vários novos recursos, entre eles, e neste trabalho destaca-se o elemento Canvas. Através do Canvas há possibilidade

(4)

de criar elementos gráficos geométricos e ainda manipulalos através do JavaScript, podendo surgir jogos interativos como mostra os trabalhos a seguir.

1.

Web Mega Pong: O jogador deve vencer a máquina defendendo todas as bolas que vierem em sua direção. Com a tecla Ctrl, o internauta pode fazer com que sua plataforma dê um pequeno impulso, aumentando a velocidade e o tamanho da bolinha. Quanto maior a bolinha, maior a energia que o jogador perde caso ela não seja rebatida. Perde o jogo aquele que ficar sem energia

primeiro. Mais detalhes em

http://info.abril.com.br/downloads/webware/w eb-mega-pong.

Figura 02: Web Pong

2. Crystal Galaxy: Com um belo visual, o game possui um único e simples comando para movimentar a nave: o mouse. Seja para se movimentar ou para atirar, o usuário deve usar unicamente seu mouse. O Crystal Galaxy possui dois modos de jogos. O primeiro é um modo arcade, o internauta deve ir percorrendo a fase, destruindo inimigos e abrindo caminho. O outro modo é de sobrevivência, onde a nave não navega por muito espaço e deve resistir aos inimigos pelo máximo de tempo possível. Disponível em: http://info.abril.com.br/downloads/webware/c rystal-galaxy

Figura 03: Crystal Galaxy

3. O HTML5 Pacman é uma reprodução do clássico jogo Pacman. Com o HTML5 ganhando cada vez mais corpo pela web, não poderia faltar o bonequinho amarelo passeando pela tela no PC com este tipo de codificação. O jogo funciona exatamente como toda versão do Pacman. Setinhas para controlar a direção enquanto foge dos fantasmas, a bolinha maior permite que o internauta coma seus inimigos e a fase termina quando todos pontos forem coletados. A única novidade, portanto, é a codificação

em HTML5

(htttp://info.abril.com.br/downloads/webware/ crystal-galaxy).

Figure 04: HTML5 PacMan

Um jogo em HTML 5 que mais chamou a atenção da comunidade é o Quake 2 (disponívem em: ). Este jogo é um clássico do Jogos em primeira pessoa muito jogado na década de 90. Pela qualidade das imagens geradas e pelo bom tempo de resposta obtido de um jogo que exige muito processamento animou vários desenvolvedores de jogos para o HTML5 (http://code.google.com/p/quake2-gwt-port).

(5)

3. Desenvolviemento de Jogos com

HTML5

3.1 Ambiente de Programação

O ambiente de programação consiste de todos os componentes necessários que possibilite a edição do código até o estágio final que é o produto utilizado, neste caso o programa de computador. Geralmente faz parte do ambiente de programação o compilador, o editor de código e as ferramentas de teste e visualição do código.

A compilação é o processo de transformar o código fonte em um código mais próximo do software responsável pela interpretação do mesmo. No caso do HTML5 não há diferenças das versões anteriores, ou seja, o código é interpretado diretamente pelo navegador Web, a consequencia é manter a tradicional portabilidade do código, escrito uma única vez este será executado em diferentes combinações de

hardwares, sistemas operacionais e navegadores.

Existem diversos editores de código para o HTML5. O código pode ser feito no mais simples dos editores de texto, entre eles: notepad no Windows ou vim, emacs, gedit no Linux. Os ambientes mais avançados encontrados na categoria de IDEs (Integrated Development Enviroment - Ambiente Integrado de Desenvolvimento) são :

• Eclipse;

• Netbeans versão 7.0 beta;

• Aptana Studio versão 3.

Todos as IDEs citadas acima são encontradas para o Windows ou Linux.

Para a visualização do produto é utilizado os navegadores web. Há dezenas de navegadores disponíveis e gratuítos na Internet entre eles:

• Firefox versão 4;

• Internet Explorer versão;

• Chrome.

4. Ambiente de Programação

4.1 Hardware e Software

O trabalho é desenvolvido utlizado-se de máquinas cujo hardware é classificado como de uso pessoal, as especificações são:

Processador Intel Core I3 Memória 4GB DDR3 1033Mhz Placa de Vídeo Integrada o processador

HD 520GB

Som Intel Corporation 5 Series/3400 Series Chipset High Definition

Tabela 01: Configuração de Hardware

O sistema operacional utlizado é o Linux Ubuntu 10.10 e o navegador web é o Chrome 10.0.648.205. Destaca-se aqui a utilização de Softwares Livres (sem custo de aquisição) afim de evitar a honeração do projeto uma vez que há recursos limitados para sua manutenção.

Merece muita atenção o navegador Chrome pelo recurso "Ferramenta para Desenvolvedor". Através desta ferramenta é possível fazer o execução passo a passo do código interpretado facilitando e muito a descoberta de erros. Alem disto, é possível visualizar a saída de avisos ou erros que geralmente é difícil de visualizar no navegador web padrão.

Figura 06: Ferramenta para Desenvolvedor

4.2 Software de Desenvolvimento

O início da aprendizagem de uma nova linguagem é importante que o desenvolvedor se familiarize com as palavras reservadas e sintaxe da linguagem. Sendo assim, nesta primeira fase priorizou-se o uso de simples editores de textos para codificação. O escolhido pela simplicidade e por ser disponível e já pré-instalado no Ubuntu 10.10 é o Gedit.

Figura 07: Editor de Texto

5. Testes

(6)

5.1 Passos para o Desenvolvimento

Após a preparação do Ambiente de Programação (seção 4), o desenvolvimento de um jogo parte do princípio do domínio da lógica de computadores e de algoritmos, a partir deste ponto o conhecimento da linguagem é fundamental. HTML 5 traz consigo todas as características das versões anteriores, ou seja, o conhecimento prévio do HTML 4 é aproveitado.

Os novos elementos do HTML 5, entre eles o Canvas que é o ponto central deste trabalho é manipulado através da linguagem JavaScript. O primeiro passo então na criação de jogos em HTML5 é o conhecimento básico do JavaScript, especificamente o domínio dos comandos de repetição, seleção e operações básicas de relação e matemáticas entre os objetos.

A codificação inicia-se apartir de um arquivo texto simples salvo com a extenão html ou htm. O código abaixo, descreve este arquivo.

<!doctype html> <html>

<head>

<meta charset="UTF-8">

<title> Primeiro Exemplo </title> </head>

<body>

<p>Examplo de Parágrafo</p> </body>

</html>

A única diferença em relação as versões anteriores e a primeira linha. o Doctype apenas diz ao navegador para renderizar segundo o novo padrão. Porém esta linha é facultativa, sua exclusão não impossibilita a inclusão dos novos elementos do HTML5.

5.2 Criação de Elementos Gráficos

Este trabalho, através dos exemplos abaixo, mostra a manipulação do Elemento Canvas incluído no HTML5. Este elemento permite a criação de qualquer desenho dentro de uma página em HTML5. Antes deste poderoso recursos a inclusão de desenhos dar-se-á por meio da tag IMG (tag imagem), porém este meio permite a inclusão de imagens pré-criadas e estáticas.

Exemplo da inclusão de um Objeto Canvas: <body>

<canvas id="canvas" width="400" height="300"> Lamento, mas seu Navegador não suporta 5:HTML5 Canvas.

</canvas>

O código acima foi extraído de uma página em HTML5. Dentro da Tag <BODY> é incluído o elemento Canvas. Sua inclusão é como qualquer outro elemento HTML. Dentro da Tag Canvas há 3 parâmetros importantes:

1. ID: O Nome pelo qual o objeto será identificado e acessado dentro do código; 2. Width: O tamanho do componente; 3. Height: A algura do componente.

Pode-se ter quantos objetos canvas for desejado, porém o ID de cada um deverá ser diferente. O parâmetro Widht e Height está associado com as dimensões 2D do componenente, neste exemplo os valores do Width e Height são em pixels.

5.3. Criação Visual de Elementos Gráficos

Os principais elementos gráficos são retângulos, círculos e retas. O código abaixo mostra a criação de um retângulo (Figura 08). <html> <head> <title> </title> <script> function draw(){ var ctx = document.getElementById('canvas'). getContext('2d'); ctx.lineWidth = 5; ctx.strokeStyle = "rgb(255,0,0)"; ctx.fillStyle = "rgb(0,0,255)"; ctx.fillRect(5,5,300,100); ctx.strokeRect(5,5,300,100); } </script></head> <body onLoad="draw()">

<canvas id="canvas" width="400" height="300"> Seu Navegador não suporta HTML5.

</canvas> </body> </html>

O código acima mostra um exemplo de como desenhar usando comandos do HTML5 um retângulo. O retângulo tem os seguintes aspectos visuais: a. fundo azul; b. borda vermelha; c. largura 300px e d. algura de 100px.

Os passos abaixo mostram como o desenho é criado pelo navegador:

1. A página é carregada pelo navegador e está sem nenhum desenho;

2. O objeto canvas é criado caso o navegador tenha suporte ao HTML5 senão a mensagem "Seu Navegador não suporta HTML 5" é apresentada;

3.

A função draw é chamada e inicia o desenho do retângulo;

4.

O comando getContext retorna uma referência ao elemento "canvas";

5. O comando lineWidth especifica a lagura da linha de borda do retângulo;

6. O comando strokeStyle especifica a cor da linha do retângulo;

7. O comando fillRec de fato desenha um retangulo segundo os valores do parâmetro;

(7)

8. O comando fillStroke de fato desenha o contorno do retângulo segundo os valores passado por parâmetro.

Figura 08: Retangulo em HTML5

O HTML5 tem vários comandos, que podem ser usados como descrito no exemplo acima para criar as figuras geométicas. Abaixo apresenta-se um trecho para criar um semi-circulo.

1.function draw(){ 2.var ctx =. document.getElementById ('canvas').getContext('2d'); 3. ctx.lineWidth = 5; 4. ctx.strokeStyle = "rgb(255,0,0)"; 5. ctx.fillStyle = "rgb(0,0,255)"; 6. ctx.beginPath();

7. ctx.arc(200, 200,30,0 ,Math.PI, false); 8. ctx.closePath();

9. ctx.fill(); 10 ctx.stroke(); 11. }

O código acima é uma modificação da função

draw. Neste exemplo as linhas foram enumeradas de 1

até 14, estes números não pertecem ao arquivo fonte apenas foram incluídas para facilitar a explicação. A funcionalidade das linhas são:

• linha 02: obtem a referência do objeto canvas;

• linha 03: define a espessura da borda;

• linha 04: define a cor do contorno;

• linha 05: define a cor do fundo;

• linha 06: inicia o desenho;

• linha 07: cria um círculo no ponto x igual a 200, ponto y igual a 200, com ângulo de 2 PI radiandos, e é desenhando da esquerda para direita.

Abaixo, na Figura 09, há a representação gráfica no navegador do código descrito acima.

Figura 09: Desenho de um semi-circulo

5.4 Manipulação dos Elementos Gráficos pelo Teclado

Uma vez desenhado os elementos gráficos como o retângulo ou círculo (seção 5.3), no desenvolvimento de um jogo, existe a necessidade de mexe-los pela janela gráfica. Basicamente existe duas maneiras de interagir com o objeto gráfico e fazê-lo se locomover pela janela, uma é através do teclado e a outra é através do mouse.

A locomoção de um objeto gráfico é produzido através do redesenho do elemento numa posição diferete. Trabalhando com jogos 2D a locomoção ocorre pela diferença de um dos dois eixos, o Y ordenada e o X absiça.

O código abaixo mostra o código em HTML5 para uma página ler do teclado as teclas direita, esquerda, abaixo e acima. Após uma destas teclas ser pressionadas um círculo é desenhado na janela. Inicialmente a posição de x é 0 e de y é 0. Se a tecla esquerda for pressionada o x é decrementado em uma unidade, se a tecla direita for pressionada o x é incrementado em uma unidade, se a tecla acima for pressionada o y é decrementado em uma unidade; e por fim, se a tecla abaixo for precionada o y é incrementnado. A Figura 10 mostra a associação.

Figura 10: Teclas usadas para manipulação <html> <head> <script> function bolinhas(evento) { switch (evento.which) { case 37: drawCicleRed(); break case 39: drawCicleBlue();

(8)

break case 38: drawCicleYellow(); break } } function inicializar() { document.getElementById("body"). onkeydown = function(evento){ bolinhas(evento); } } function drawCicleRed(){ var ctx = document.getElementById("tela"). getContext("2d"); ctx.beginPath(); ctx.fillStyle = "red"; ctx.strokeStyle = "red"; ctx.arc(Math.floor(800*Math.random()), Math.floor(600 * Math.random()), 10, 2 * Math.PI, false); ctx.closePath(); ctx.stroke(); ctx.fill(); } function drawCicleBlue(){ var ctx = document.getElementById("tela"). getContext("2d"); ctx.beginPath(); ctx.fillStyle = "blue"; ctx.strokeStyle = "blue"; ctx.arc(Math.floor(800*Math.random()), Math.floor(600 * Math.random()), 10, 2 * Math.PI, false); ctx.closePath(); ctx.stroke(); ctx.fill(); } function drawCicleYellow(){ var ctx = document.getElementById("tela"). getContext("2d"); ctx.beginPath(); ctx.fillStyle = "yellow"; ctx.strokeStyle = "yellow"; ctx.arc(Math.floor(800 * Math.random()), Math.floor(600 * Math.random()), 10, 2 * Math.PI, false); ctx.closePath(); ctx.stroke(); ctx.fill(); } </script></head>

<body id="body" onLoad="inicializar()"> <p>

Click nas setas do teclado para aleatoriamente aparecer bolas na tela.

</p>

<canvas id="tela" width="800" height="600"> Lamento seu Navegador nao suporta HTML5 </canvas>

</body> </html>

O ponto fundamental no código acima é o trecho: function inicializar() { document.getElementById("body"). onkeydown = function(evento){ bolinhas(evento); } }

O trecho acima associa ao evento onkeydown que representa o ato de precionar uma tecla a função

bolinhas(evento). A função bolinhas seleciona qual cor

da bolinha a ser desenhada através do valor evento que é passado por parâmetro. Se o valor for 37 então é chamado a função drawCicleRed (desenha um circulo vermelho), se o valor for 39 a função drawCicleBlue é chamada (desenha um círculo azul) e por fim, se o valor for 38 a função drawCicleYellow é chamada (desenha um circulo amarelo). Nota-se que para cada tecla há um valor inteiro associado.

Figura 11: Manipulação através do Teclado

5.5 Manipulação dos Elementos Gráficos pelo Mouse

Durante a fase inicial do projeto de desenvolvimento de jogos com HTML5 procurou-se outra maneira de interagir com o usuário, uma forma natural além do teclado é através do mouse.

A princípio os eventos do mouse manipulados são:

• captura dos valores do eixo x e eixo y (localização cartesiana do mouse);

• pressionamento do botão: direito, esquerdo ou do meio;

• soltura de um dos botões precionados.

Para demostrar a manipulação dos eventos do mouse o código abaixo é apresentado:

<html> <head> <script> var mx,my; var down=0; function drawball(){ var ctx = document.getElementById("tela"). getContext("2d"); ctx.beginPath(); ctx.fillStyle = "rgb("+Math.floor(255 * Math.random())+","+ Math.floor(255 * Math.random()) +","+ Math.floor(255 * Math.random()) +")"; ctx.strokeStyle = "rgb("+Math.floor(255 * Math.random())+","+ Math.floor(255 *

(9)

Math.random()) +","+ Math.floor(255 * Math.random()) +")";

ctx.arc( mx, my, 10, 2 * Math.PI, false); ctx.closePath(); ctx.stroke(); ctx.fill(); } function drawdown(ev){ down=1; } function drawmove(ev){ if ( ev.layerX || ev.layerX==0) { mx= ev.layerX; my = ev.layerY; }

else if (ev.offsetX || ev.offsetX==0 ) { mx = ev.offsetX; my = ev.offsetY; } if (down == 1){ drawball(); } } function drawup(){ down = 0; } function inicializar() {

var canvas1 = document.getElementById("tela"); canvas1.addEventListener("mousedown",drawdown, false); canvas1.addEventListener("mousemove",drawmove, false); canvas1.addEventListener("mouseup",drawup,fals e); } </script></head>

<body id="body" onLoad="inicializar()"> <canvas id="tela" width="800" height="600"> Lamento seu Navegador nao suporta HTML5 </canvas>

</body> </html>

A Figura 12 (abaixo) ilustra a execução do código acima após a interação do usuário com o Mouse. Para realizar este experimento o mouse é colocado em uma posição da janela e enquanto o botão esquerdo é precionado um circulo é desenhando na posição aond o ponteiro do mouse se encontra.

Figura 12: Manipulação através do Mouse

O ponto importante neste código é o segunte trecho:

function inicializar() {

var canvas1 = document.getElementById("tela");

canvas1.addEventListener("mousedown",drawdown, false); canvas1.addEventListener("mousemove",drawmove, false); canvas1.addEventListener("mouseup",drawup,fals e); }

O código acima demostra como associar um evento do mouse a uma função definida no código. O evento mousedown que representa o pressionamento do botão esquerdo é associado a função drawdown. O evento mousemove que representa o movimento do mouse é associado a função drawmove. O evento mouseup que representa o ato de soltar o botão esquerdo precionando é associado a função drawup. As funções drawdown, drawmove e drawup são funções codificadas segundo a lógica de que quando o botão esquerdo estiver pressionado um circulo é desenhado abaixo do ponteiro, movimentando o mouse um círculo seguirá o movimento do mouse.

5.6 Simulação de um oponente

É comum que num jogo o computador simule o oponente, sendo assim, há necessidade de simular o comportamento do oponente através de um código que é executado em segundo plano. O HTML5 tem suporte a multitarefa, portanto, um código pode ser executado várias vezes segundo uma lógica particular do jogo.

O código abaixo mostra como uma função pode ser invocada a cada período de tempo.

function inicializar() { setInterval( function(){ desenha()}

,50) }

Apesar da simplicidade do trecho de código acima ele é muito importante para a construção de jogos com HTML5. A função setInterval permite agendar no navegador que a função desenha() seja chamada a cada 50 milisegundos.

5.7 Lógica do Jogo - Jogo de Dados

Para finalizar a seção de testes é apresentado um código para simular um jogo de Dados, este exemplo agromera a maioria dos códigos explicados nesta seção.

O código abaixo demonstra como inserir um botão que após seu precionamento invoca a função

playdice().

<form id="jogo"

action="javascript:playdice()"> <input type="submit" value="jogar"/> </form>

(10)

A função playdice() chama o método random do objeto Math e seleciona aleotoriamente um valor entre 0 e 1. Uma vez selecionando o valor randomico é feita uma operação matemática para retornar os possíveis valores de um dado. O código abaixo mostra estes comandos:

function playdice(){ drawDice();

var numero = 1 + Math.floor(6 * Math.random() ); switch(numero){ case 1:{ draw1(); break; } case 2:{ draw2(); break; } case 3:{ draw3(); break; } case 4:{ draw4(); break; } case 5:{ draw5(); break; } case 6:{ draw6(); break; } }

Outras funções aparecem no código acima, as funções: draw1(), draw2(), draw3(), draw4(), draw5()

e draw6() desenha os lados de um dado,

respectivamente os lados 1,2,3,4,5 e 6. O resultado do código acima é a construção de uma págima como apresentada na Figura 13.

Figura 13: Jogo de Dado

6. Conclusão e Trabalhos Futuros

O Artigo, de forma resumida, apresenta algumas etapas dominadas e avaliadas quanto ao desenvolvimento de jogos em HTML5. Apesar do trabalho ter apenas alguns meses, já é dominado os procedimentos básicos para criação de jogos simples e interativos voltados a

finalidade do Grupo de Pesquisa no desenvolvimento de jogos educativos com o conteúdo de História.

Inicialmente, a vantagem da edição de páginas em HTML5 é de não requer a instalação de programas de terceiros para execução dos programas.

Os ambientes de desenvolvimento são diversos e a maioria distribuída livremente. As IDEs utilizadas no desenvolvimento para o Adobe Flash ainda são de uma maturidade maior e com facilidades visuais ainda não alcançadas pelas IDEs encotradas para o desenvolvimento em HTML5. Durante a fase inicial do estudo do HTML5 foi optado por editores de texto simples para facilitar a memorização dos comandos do HTML5.

Os programas em HTML5 são interpretados pelo navegador em tempo real, geralmente este comportamento gera programas mais lentos que os compilados, porém o Quake 2 portado para HTML5 mostra que esta desvantagem não impossibilita a criação de jogos complexos em HTML5 e com boa performance.

Quanto ao suporte ao desenvolvedor, o Navegador Chrome apresentou ferramentas de produtividade eficientes e de suma importância.

O HTML5 surgio com o recurso de manipular imagens e som através de primitivas diretas do processador, assim há um aumento de performance por evitar plugins de terceiros para manipulação de imagem e som.

Os trabalhos futuros consiste na investigação de utilização dos seguintes recursos do HTML5:

• WebSocket: para criar programas com interação dos jogadores via Internet;

• Produção e manipulação de áudio;

• Procurar novas IDEs para aumentar a produtivade do desenvolvimento;

• Estudo do WebGL para criação de gráficos 3D;

• Engines para criação de Jogos.

Agradecimento

Os autores agradecem a Universidade Federal do Piauí pelo apoio na realização deste projeto através da diponibilização de sua infraestrutura física e da rede de dados.

Referências

RELIH, 2010. Disponível em:

<http://www.ufpi.br/relih/wiki/index.php/Página_Princi pal>. Acesso em: 20 abr de 2011.

Andrew. S. Tanenbaum, 2003. Redes de Computadores. Ed. Campus, 2003.

(11)

Ed. Aurelio, 2006. História do HTML. Disponível em: <http://www.htmlstaff.org/ver.php?id=1161>. Acessado em 03 abr de 2011.

W3C, 2010a, HTML5. Disponível em:

<http://www.w3.org/TR/2010/WD-html5-20100304/>. Acesso em: 27 maio de 2010.

W3C, 2010b, HTML5 Differences from HTML4, Disponível em: <http://www.w3.org/TR/2010/WD-html5-diff-20100304/>. Acesso em 27 mai. de 2010.

W3C, 2010c. HTML: The Markup Language, Disponível em: <http://www.w3.org/TR/2010/WD-html-markup-20100304/>. Acesso em 27 mai. de 2010.

W3C, 2010d. HTML Canvas 2D Context. Disponível em: <http://www.w3.org/TR/2010/WD-2dcontext-20100304/>. Acesso em 27 mai. de 2010.

Referências

Documentos relacionados

OSWALD by Vernon Adams Oswald ExtraLight abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890 !@#$%ˆ&amp;*() Oswald Light

Para Azevedo (2013), o planejamento dos gastos das entidades públicas é de suma importância para que se obtenha a implantação das políticas públicas, mas apenas

A cirurgia, como etapa mais drástica do tratamento, é indicada quando medidas não invasivas como dietas restritivas e a prática regular de exercícios físicos

There a case in Brazil, in an appeal judged by the 36ª Câmara Cível do Tribunal de Justiça do Estado de São Paulo (São Paulo’s Civil Tribunal, 36th Chamber), recognized

As análises serão aplicadas em chapas de aços de alta resistência (22MnB5) de 1 mm de espessura e não esperados são a realização de um mapeamento do processo

Com a instalação do terminal intermodal da América Latina Logística - ALL, no município de Rondonópolis, em 2013, o transporte ferroviário apresenta-se como

Considerando a amplitude da rede mundial de computadores (internet) e a dificuldade em controlar as informações prestadas e transmitidas pelos usuários, surge o grande desafio da

O tema proposto neste estudo “O exercício da advocacia e o crime de lavagem de dinheiro: responsabilização dos advogados pelo recebimento de honorários advocatícios maculados