You are on page 1of 67

UNIVERSIDADE PAULISTA

CURSO DE CINCIA DA COMPUTAO

Guilherme Fainer Dalbem - A11AIB-8 Henrique Fantini - 435558-0

Uso do paradigma de jogos eletrnicos para a simulao dos conceitos de fsica mecnica

Professor Orientador: Ms. Angela Teresa Rochetti

Bauru
Dezembro/2012

Guilherme Fainer Dalbem -A11AIB-8 Henrique Fantini - 435558-0

Uso do paradigma de jogos eletrnicos para a simulao dos conceitos de fsica mecnica

Trabalho de concluso de curso

apresentado

como requisito para obteno do ttulo de bacharel em Cincia da Computao da Universidade Paulista.

Professor Orientador: Ms. Angela Teresa Rochetti

Bauru
Dezembro/2012

" Para poder fazer uma torta de maas do nada, voc deve antes criar o universo". (Carl Sagan)

RESUMO

Em pleno sculo 21, evidente a difuso de jogos eletrnicos na vida das pessoas. Trata-se de um mercado que consome uma boa parte da indstria do entrenimento e que movimenta grande concorrncia entre suas

desenvolvedoras. Criou-se ao longo do tempo consumidores exigntes que buscam por qualidade e inovaes com relao a grficos e ambientes fsicos detalhados. Este trabalho apresenta tcnicas de desenvolvimento de jogos eletrnicos com aspectos fsicos basedos em teorias comprovadas pela cincia, tas como gravidade, acelerao, movimentao, gravitao universal e colises. De forma a exemplificar os processos, o projeto tambm inclu o desenvolvimento de trs cenrios que utilizam tais mtodos.

Palavras Chaves: Jogos eletrnicos; Fsica; Desenvolvimento de Software; Flash; Action Script.

Lista de figuras

2.3.2.1 rea do palco ............................................................................................ 18 2.3.2.2 Exemplo da estrutura utilizada nos exemplos do projeto .......................... 19 2.3.3.1 Imagem adicionada a um container .......................................................... 20 2.3.4.1 Representao do ponto (3,2) em um plano cartesiano ............................ 20 2.3.4.2 Representao do ponto (3,2) na coordenada do flash ............................ 21 2.3.4.3 Exemplo de um quadrado tendo seu ponto de origem (0,0)...................... 20 4.1.1 Prottipo de funo recursiva ....................................................................... 25 4.1.2 Funo recursiva .......................................................................................... 26 4.2.1 Viso geral da simulao ............................................................................ 28 4.3.1 Viso geral do cenrio .................................................................................. 29 4.3.2 Incio da programao da classe .................................................................. 30 4.3.3 Movimento da bola ....................................................................................... 30 4.3.4 Teste de coliso com o limite inferior do palco ............................................. 32 4.3.5 Ajuste na condicional de acordo com o centro da bola ................................ 32 4.3.6 Invertendo o sentido da bola ........................................................................ 33 4.4.1 Viso geral da simulao ............................................................................. 34 4.4.2 Tratamento do teclado e alterao dos valores da simulao ...................... 35 4.4.3 Relao da diviso da fora que aplicada aos eixos ................................. 36 4.4.4 Clculo de movimentao da mira do canho .............................................. 36 4.4.5 Clculo para determinar a distribuio da acelerao entre os eixos .......... 38 4.4.6 Desenhando o projtil no palco .................................................................... 38 4.4.7 Tratamento das colises com as bordas do cenrio .................................... 39 4.4.8 Sequncia de disparo do canho ................................................................. 40 4.5.1 Viso geral da simulao ............................................................................. 41 4.5.2 Estrutura bsica da simulao ..................................................................... 42

4.5.3 Relao trigonomtrica do ngulo a ser calculado ....................................... 43 4.5.4 Clculo da tangente de acordo com as posies dos objetos ...................... 44 4.5.5 Converso de radianos para graus e clculo do ngulo da reta .................. 45 4.5.6 Relao do intervalo angular entre a trigonometria e o flash ....................... 46 4.5.7 Condicional que corrige e determina o ngulo ............................................. 47 4.5.8 Relao do sentido das foras de acordo com o plano cartesiano .............. 48 4.5.9 Condicionais encadeados que identificam o sentido do mvel .................... 49 4.5.10 Clculo de distncia dos corpos baseado no teorema de pitgoras .......... 50 4.5.11 Determinando a porcentagem de fora aplicada nos eixos ........................ 50 4.5.12 Calculando a fora que o planeta esta exercendo sobre a lua ................... 51 4.5.13 Calcula da acelerao, distribuio e aplicao na velocidade da lua ....... 51

Sumrio
1 INTRODUO ......................................................................................................... 8 1.1 OBJETIVOS ....................................................................................................... 9 1.2 JUSTIFICATIVAS ............................................................................................. 10 1.3 PROBLEMA / HIPTESE ................................................................................ 11 2 PRESSUPOSTOS TERICOS .............................................................................. 12 2.1 JOGOS ELETRNICOS .................................................................................. 12 2.2 FSICA.............................................................................................................. 13 2.2.1 FSICA MECNICA ................................................................................... 13 2.3 FLASH.............................................................................................................. 17 2.3.1 ACTION SCRIPT 3.0 ................................................................................. 17 2.3.2 PALCO ...................................................................................................... 18 2.3.3 MOVIE CLIPS ............................................................................................ 19 2.3.2 SISTEMAS DE COORDENADAS NO FLASH ........................................... 20 3 MATERIAIS E MTODOS ..................................................................................... 23 3.1 CRONOGRAMA ............................................................................................... 23 3.2 HARDWARE .................................................................................................... 23 3.3 SOFTWARE ..................................................................................................... 23 4 DESENVOLVIMENTO............................................................................................ 24 4.1 ESTRUTURA ................................................................................................... 24 4.2 INTERFACE ..................................................................................................... 27 4.3 CENRIO 1 GRAVIDADE SIMPLES ............................................................. 29 4.4 CENRIO 2 LANAMENTO OBLQUO ........................................................ 33 4.5 CENRIO 3 GRAVITAO UNIVERSAL...................................................... 40 5 RESULTADOS ....................................................................................................... 52 5.1 CONCLUSO................................................................................................... 52 6 REFERNCIAS ...................................................................................................... 54

ANEXOS

1 INTRODUO

A partir do final dos anos 80 com a difuso do computador domstico, os jogos comearam a fazer as primeiras aparies no mercado. Ao passar dos anos a exigncia dos consumidores com relao a tecnologias grficas impulsionou as empresas de tecnologia a desenvolver pesquisas de hardware mais potentes. Devido a estes avanos, chegou o momento da fsica contribuir com novos mtodos, tornando estes jogos mais reais (EBERLY, 2004). Como as Unidades Centrais de Processamento (CPUs) e as unidades de Processamento Grfico (GPUs) evoluram devido s exigncias dos

consumidores na rea de jogos, as placas grficas se tornaram poderosas o suficiente para dar aos jogadores um visual rico e um ambiente convincente para os jogadores. Mas os consumidores so exigentes e procuram mais realismo fsico. Prevendo uma tendncia nesta direo, a companhia MathEngine comeou a criar o que foi chamado de motor de fsica (EBERLY, 2004).

Na dcada de 1990, comearam as pesquisas no que os desenvolvedores chamaram de tecnologia 2.5D, pois, segundo Henry e Karsemeyer (2008) tratava-se de uma tcnica especfica para desenhar grficos que passavam a impresso de um ambiente em 3D. De certa forma, esse requinte na tecnologia grfica propiciou espao para a fsica dos jogos se tornar mais refinada, pois, nada adiantaria uma revoluo na ambientao se a impresso fsica no fosse diretamente proporcional.

Do final da dcada de 1990 at hoje, deu-se por grandes evolues neste contexto, permitindo detalhes que tornam o jogo mais realstico, como exploses que empurram objetos, movimentao refinada dos personagens, efeitos meteorolgico que afetam o ambiente do jogador, a luz dos cenrios deixaram de ser fixa entre outras inovaes (HENRY; KARSEMEYER, 2008).

Para o futuro, segundo Henry e Karsemeyer (2008), espera-se que a fsica do mundo virtual se aperfeioe ao longo dos anos automatizando rotinas bsicas de desenvolvimento e reduzindo o trabalho para a criao desses ambientes.

O foco deste trabalho consiste no estudo e demonstrao da utilizao da fsica e sua importncia na estrutura de um jogo e para realizar uma simulao prxima do real no ambiente virtual.

No captulo 2 ser exposto os pressupostos tericos para o contexto deste trabalho. No captulo 3 a metodologia usada; no captulo 4 o desenvolvimento da proposta deste trabalho e, finalmente no captulo 5, os resultados obtidos e concluso.

1.1 OBJETIVOS

Neste trabalho se mostra a importncia e uso da fsica com a utilizao e desenvolvimento de um jogo com aspectos mecanicamente realistas, de acordo com a exigncia que o mercado consumidor vm adquirindo ao longo dos anos.

Para isso, ser realizado um estudo de alguns temas da fsica, que so e que podem ser aplicados nos jogos:

o o

Conceitos Bsicos Velocidade


Linear Angular

Acelerao

Constante No constante

Campos de fora

Gravidade Frico

10

Coliso

Foi desenvolvido na forma de mdulos um sistema na plataforma Adobe Flash e linguagem Actionscript 3.0 com o intuito de exemplificar os conceitos anteriormente listados.

1.2 JUSTIFICATIVAS

A pesquisa de novas tecnologias no campo da fsica aplicada aos games tem crescido de acordo com a exigncia do mercado consumidor, pois se criou uma necessidade de tornar os jogos mais realistas devido concorrncia tecnolgica e a alta demanda de jogadores exigentes (BOURG, 2002).

Na atualidade o mbito da fsica h crescido tanto que, com muito poucas excesses, os fsicos modernos tem que limitar sua ateno a um dos ramos de sua cincia. Uma vez que se descobrem e compreendem os aspectos fundamentais de um novo campo, este passa a ser de interesse dos engenheiros e outros cientistas. (AGUILAR, 2008)

Muitos estudantes, aps o termino do colgio costumam jogar seus livros de fsica em uma caixa e nunca mais tocam no assunto, justamente por que os mtodos de ensino no despertaram o seu interesse. Estudar a fsica atravs dos games uma maneira fcil e esclarecedora de compreender como ela funciona na vida real (BOURG, 2002).

Todos os profissionais da rea de desenvolvimento de jogos, independente da tarefa especfica, podem deparar com certos trabalhos que envolvem os conceitos bsicos da fsica e no fazem ideia de como isso funciona. Ter o conhecimento bsico do assunto de extrema importncia (BOURG, 2002).

11

A fsica um importante fator na criao de uma experincia de imerso para jogos eletrnicos. Todos os jogos mais memorveis encontraram formas de superar as restries tecnolgicas do seu tempo para criar experincias que mantinham os jogadores entretidos. (HENRY; KARSEMEYER, 2008)

Ao aplicar as leis da fsica, possvel modelar quase tudo o que salta, voa, rola, desliza, ou seja, tudo que necessita de movimento. Isso permite que se crie um contedo rico em detalhes e interatividade para jogos de computador, simulaes e animaes (BOURG, 2002).

1.3 PROBLEMA / HIPOTESE

Problema: Como melhor compreender os conceitos fundamentais da fsica como velocidade, acelerao, campos de fora de uma maneira satisfatria e interessante?

Hiptese: Atravs de jogos eletrnicos em um ambiente computacional, estas questes podero ser esclarecidas de uma forma dinmica e didtica, por meio de algoritmos que abordam os conceitos em questo.

12

2 PRESSUPOSTOS TERICOS

Este captulo descreve os princpios fundamentais da pesquisa. Neles esto descritos mtodos relacionados a jogos eletrnicos, tpicos da fsica e informaes referentes s ferramentas utilizadas para estruturar o projeto.

2.1 JOGOS ELETRNICOS

Segundo Protssio (2008), um jogo eletrnico pode ser considerado um programa de computador que promove a interao do jogador a fim de realizar escolhas e atingir objetivos em meio a regras pr-definidas. Tal qual um jogo de tabuleiro, que estabelece condies de vitria e fracasso e exige interao e raciocnio do jogador, assim o jogo eletrnico. No entanto, o tabuleiro do jogo eletrnico virtual e apresenta uma gama de possibilidades infinita. Os elementos de composio de jogo podem ser definidos atravs do prprio conceito de jogo eletrnico. Sendo o jogo eletrnico essencialmente um sistema de regras, similar a de um jogo fsico, desenvolvido em um software executvel, possvel deduzir que h uma unio da esfera da informtica com a ludologia. No regra, mas a maioria dos jogos eletrnicos visa o entretenimento, logo evidente como o jogo eletrnico pode ser uma nova forma de manifestao da ludologia.

Os jogos eletrnicos, embora com algumas semelhanas em sua elaborao com os jogos tradicionais, possibilitam, para alm da possibilidade de simulao, movimento, efeitos sonoros em sua utilizao corriqueira, uma interao com uma nova linguagem oriunda do surgimento e do desenvolvimento das tecnologias digitais, da transformao do computador, em aparato de comunicao, e da convergncia das mdias (MOITA, 2006).

Atualmente os jogos eletrnicos tem se tornado acessveis por um grande nmero de plataformas deixando de ser limitada somente aos computadores e videogames. Hoje possvel jogar utilizando tambm dispositivos mveis como, por exemplo, celulares, smartphones, tablets e videogames portteis.

13

2.2 FSICA

Fsica, segundo Aguilar (2008) a cincia que se ocupa dos componentes fundamentais do Universo, das foras que interagem entre si e dos efeitos das ditas foras. s vezes a fsica moderna incorpora elementos dos trs aspectos mencionados, como ocorre com as leis de simetria e conservao de energia, de momento, da carga e da paridade.

Halliday (2001) considera a fsica, assim como todas as outras cincias, algo baseado em observaes experimentais e manuseio quantitativo. O principal objetivo desta cincia justamente encontrar um numero de leis fundamentais que governam os fenmenos naturais e utiliz-los para tornar possveis experimentos e pesquisas futuras.
Uma das cincias mais antigas, a fsica responsvel por grande parte do desenvolvimento cientfico alcanado pela humanidade. Ela tem aplicaes em praticamente em todos os campos da atividade humana: Na medicina, nos transportes, nos esportes, nas comunicaes, na indstria etc. (BONJORNO; CLINTON, 1999, p.14).

2.2.1 FSICA MECNICA

Dentro do contexto da fsica, existe uma subdiviso chamada de fsica mecnica a qual muito utilizada para o desenvolvimento de jogos eletrnicos como principal forma de definir as regras de um ambiente de jogo. Ela tem o importante papel de definir como as entidades do jogo se comportam referente a suas respectivas movimentaes e colises. Ainda dentro deste assunto importante destacar outros conceitos importantes como:

14

Velocidade

Segundo Bueche (1995), quando se diz que um carro est em movimento com uma velocidade de 80 km/h, sendo assim, o carro viaja a uma distancia de 80 km em 1 hora mantendo constante sua velocidade. Em 30 minutos, o carro viaja 0.5h x 80 km que resulta em 40 km, e duas seriam 2 x 80 que igual a 160 km. Em geral a distancia que o carro percorre se sua velocidade for constante : Distancia percorrida = velocidade x tempo, como se segue:

Acelerao

Halliday, Resnick e Walker (2001) exemplificam da seguinte forma: se notar que o vetor velocidade de um corpo que pode ser considerado uma partcula mudou em modulo ou direo, voc sabe que algo deve ter causado essa mudana (essa acelerao). Na verdade, da experincia do dia a dia, voc sabe que a mudana da velocidade deve ser atribuda a uma interao entre o corpo e algo ao seu redor. Por exemplo, se voc perceber que um disco de hquei que desliza por um rinque de gelo subitamente para ou muda de direo, voc ira suspeitar que o disco encontrou uma ligeira elevao na superfcie do gelo.

Fora Gravitacional

De acordo com Halliday, Resnick e Walker (2001), uma fora gravitacional atuando sobre um corpo um puxo na direo de um segundo corpo assim, ao falarmos da fora gravitacional agindo sobre um corpo normalmente nos referimos a uma fora que atrai o corpo bem na direo do centro da terra - ou seja, dirigida para baixo em direo ao cho. Supondo que o cho um referencial inercial.

15

Suponha que o corpo, de massa m, esteja em queda livre com acelerao de queda livre de modulo g, que a acelerao exercida pela gravidade. Ento, se desprezarmos os efeitos do ar, a nica fora agindo sobre o corpo a fora gravitacional (HALLIDAY; RESNICK; WALKER, 2001, p.76).

Primeira lei de Newton

Bonjorno e Clinton (1999) descrevem que tal princpio, formulado pela primeira vez por Galileu e depois confirmado por Newton, conhecido como primeira lei de Newton ou princpio da inrcia. A lei descreve que todos os corpos so inertes e que permanecem neste estado a menos que exista uma fora agindo sobre eles, isto , um corpo em repouso permanecer em repouso e um corpo em movimento permanecer neste estado.

Segunda lei de Newton

Bonjorno e Clinton (1999) sintetizam a segunda lei de Newton da seguinte forma: A resultante das foras aplicada a um ponto material igual ao produto de sua massa pela acelerao adquirida, isto , quanto maior a massa de um corpo mais fora ser necessria para produzir uma dada acelerao. Este princpio estabelece uma proporcionalidade entre causa e efeito.

Gravitao universal

De acordo com Halliday, Resnick e Walker (2001), Isaac Newton demonstrou que no existe diferena entre a fora que mantm a Lua em rbita e a fora responsvel pela queda de uma ma. Newton chegou concluso de que no s a Terra atrai as mas e a Lua, mas tambm cada corpo do universo atrai todos os demais; essa tendncia dos corpos de se atraram mutualmente chamada de gravitao; este fundamento representado pela seguinte frmula:

16

Frico

Se deslizarmos ou tentarmos deslizar um corpo sobre uma superfcie, o movimento sofre resistncia por meio de uma ligao entre o corpo e a superfcie. A resistncia considerada como uma nica fora F, chamada de fora de atrito, ou simplesmente atrito. Esta fora esta na direo da superfcie, em sentido contrrio ao movimento pretendido. s vezes, para simplificar uma situao, o atrito considerado desprezvel (HALLIDAY; RESNICK; WALKER, 2001, p.78).

Colises

Halliday, Resnick e Walker (2001) definem, em linguagem coloquial, que uma coliso ocorre quando objetos batem uns nos outros. Esta definio pode ser refinada utilizando exemplos como: coliso das bolas de bilhar, um martelo e um prego, entre automveis, bolas de boliche e pinos etc. Colises variam desde a escala microscpica de partculas subatmicas at a escala astronmica de estrelas e galxias que colidem. Mesmo quando elas ocorrem em uma escala humana, elas so frequentemente rpidas demais para serem vistas, apesar de envolverem distoro considervel dos corpos que colidem.

Quanto ao e a reao, considere o seguinte exemplo: empurre seu dedo contra uma parede e a parede empurrar de volta o seu dedo. Como outro exemplo, considere o que acontece quando voc chuta uma bola de futebol; seu p exerce uma fora na bola, mas voc consegue sentir uma fora oposta exercida pela bola em seu p.

17

Bueche e Jerde (1995) explicam que Isaac Newton examinou esta gama de situaes e chegou a uma concluso, denominada como Terceira Lei de Newton: se um objeto A exerce uma fora F em um objeto B, ento o objeto B exerce uma fora -F sobre o objeto A, igual magnitude de F mas em direo oposta. Uma destas foras (qualquer uma) chamada de fora de ao; a outra chamada de fora de reao.

2.3 FLASH

Segundo a Adobe (2012), o flash um ambiente de criao para produzir contedo interativo e expressivo. Ele cria experincias imersivas que se apresentam de forma consistente a pblicos atravs de desktops, smartphones, tablets e televisores.

2.3.1 ACTION SCRIPT 3.0

Segundo a Adobe, o ActionScript a linguagem de programao dos ambientes de tempo de execuo Adobe Flash Player e Adobe AIR. Ele permite interatividade, manipulao de dados e muito mais no contedo e nos aplicativos do Flash, Flex e AIR.

O ActionScript executado com a AVM (ActionScript Virtual Machine), que faz parte do Flash Player e do AIR. O cdigo do ActionScript em geral compilado no formato de cdigo de bytes (um tipo de linguagem de programao escrita e entendida por computadores) por um compilador, como o criado no Adobe Flash CS4 Professional ou no Adobe Flex Builder ou como o disponvel no Adobe Flex SDK. O cdigo de bytes incorporado aos arquivos SWF, que so executados pelo Flash Player e pelo AIR.

18

2.3.2 PALCO De acordo com a documentao da Adobe (2012), o Palco, tambm conhecido como Stage, uma rea dentro da aplicao do Flash que ser visvel na publicao final do programa. A rea do Palco pode ter sua largura, altura e colorao personalizada, bem como o valor de FPS que ir ser executado; caso nenhuma destas configuraes seja alterada em tempo de execuo, a aplicao manter estas definies ao longo de toda a execuo do programa.

Figura 2.3.2.1 - rea do palco.

A rea do Palco exibida na figura 2.3.1.2 ser responsvel pela exibio dos objetos na tela, como textos e imagens, que estiverem dentro de seu limite e ser a primeira estrutura a ser executada. A rea cinza, que corresponde a toda rea em volta do palco, tambm poder receber objetos; entretanto, estes objetos no sero visveis ao usurio at que suas coordenadas sejam alteradas durante a execuo do programa. No menu de propriedades, possvel definir a classe principal da aplicao que ir ser executada em conjunto com o Palco. Esta classe pode ser reconhecida simbolicamente como uma classe Main, e, nestes exemplos, ser responsvel pela programao da fsica dos objetos do Palco.

19

Figura 2.3.2.2 - Exemplo da estrutura utilizada nos exemplos do projeto.

A figura 2.3.2.2 representa um exemplo de uma estrutura hierrquica dos objetos que sero visualizados no flash, nela h o palco como objeto pai. A instncia da classe principal considerada a classe Main e, seus filhos instancias de movie clips.

2.3.3 MOVIE CLIPS Segundo a documentao sobre Action Script 3.0 da Adobe (2012), para que os objetos inseridos no palco possam ser referenciados na programao das classes e terem, eventualmente, suas propriedades alteradas, preciso definir um nome de instncia. Caso o objeto seja uma imagem, desenho ou forma geomtrica, necessrio armazen-los dentro de um container chamado de MovieClip. Estes objetos tero suas propriedades reconhecidas de acordo com seu tipo. Essas propriedades envolvem por exemplo o posicionamento, o tamanho, a rotao e etc.

20

2.3.3.1 - Imagem adicionada a um container posicionado no palco recebendo o nome de "bola".

2.3.4 SISTEMAS DE COORDENADAS NO FLASH O sistema de coordenadas utilizado no Flash chamado de Sistema de Coordenadas Cartesianas. Este sistema consiste em um conjunto de dois nmeros que descrevem a posio de um ponto. Em matemtica, estes nmeros so agrupados entre parnteses, como por exemplo: (3,2). O valor 3 representa a distncia ao longo do eixo x, tambm conhecido como eixo das abscissas e, o valor 2, distncia ao longo do eixo y, das ordenadas.

Figura 2.3.4.1 - Representao do ponto (3,2) em um plano cartesiano convencional

Na figura 2.3.4.1, existe a posio do ponto (3,2) ilustrado em um plano cartesiano convencional; note que todos os pontos posicionados a direita do eixo

21

y e a cima do eixo x, recebero valores positivos. Os pontos que se encontram baixo do eixo x e a esquerda do eixo y recebero valores negativos. A maioria dos programas de computador utiliza o mesmo sistema de coordenadas, assim como o Flash o faz, onde o ponto (0,0) iniciado no canto superior esquerdo do monitor tornando os pontos a direita do eixo y e a baixo do eixo x serem valores positivos.

Figura 2.3.4.2 Representao do ponto (3,2) na coordenada do Flash

Assim como existe a posio de um objeto em relao ao Palco, h tambm a posio do objeto em relao a ele mesmo. Nos exemplos que se seguiro, o centro dos MovieClips ser o ponto de origem (0,0).

Figura 2.3.4.3 - Exemplo de um quadrado tendo seu ponto de origem (0,0) localizado em seu centro e outro com o ponto de origem (0,0) no canto superior esquerdo. Ambos adicionados ao Palco na coordenada (3,2).

22

Esta definio se torna fundamental para entender como o os objetos se situam na tela. As simulaes desenvolvidas neste projeto utilizam este padro como base.

23

3 MATERIAIS E MTODOS Este trabalho quanto a sua natureza trata-se de uma pesquisa aplicada, cujo objetivo gerar conhecimento para aplicao prtica envolvendo verdades e interesses locais. Neste captulo ser apresentado o cronograma geral de desenvolvimento e as especificaes tcnicas dos equipamentos utilizados durante o desenvolvimento do projeto.

3.1 HARDWARE As simulaes foram desenvolvidas em um computador com processador AMD phenon x4, 4gb de memria RAM, placa de vdeo Nvidia G-Force 250gt com 256 bits de taxa transferncia e 1gb de memria interna. Parte do desenvolvimento das simulaes tambm aconteceu em um PC com processador Intel i5, 4gb de memria RAM, 500 GB de HD, placa de vdeo integrada Intel. As simulaes foram testadas em um notebook com Intel i5, 4 GB de memria RAM, placa de vdeo AMD Radeon 7450M com 128 bits de taxa de transferncia e 1gb de memria interna. 3.2 SOFTWARE Foram utilizados os seguintes softwares no desenvolvimento deste projeto: Adobe flash CS 5.5 e Action Script 3.0 Flash develop 4.2

3.3 CRONOGRAMA

24

4 DESENVOLVIMENTO

Este captulo apresenta o desenvolvimento deste trabalho para cumprir os objetivos propostos. Um jogo eletrnico ou uma simulao de computador podem ser construdos utilizando os mesmos recursos com os quais so desenvolvidos softwares comerciais ou utilitrios, divergindo apenas na maneira como esse tipo de programa abstrado e como ele se comporta ao longo de sua execuo. fundamental entender como funciona esta estrutura para que exista total compreenso de como a fsica aplicada e, consequentemente, entender os exemplos abordados neste projeto. O conhecimento da fsica, entretanto, exigido de acordo com o que se deseja reproduzir; exemplos mais complexos ou algoritmos avanados podem sempre ser adaptados ou at mesmo simplificados, de acordo com o nvel de realidade que se almeja.

4.1 ESTRUTURA

Diferentemente de um software comercial ou outros, os jogos e simulaes so desenvolvidas para um ambiente que necessita constante atualizao. Para que seja possvel atualizar todos os objetos e personagens de um jogo aplicando por exemplo efeitos de gravidade, coliso, frico entre outros necessrio o uso de funes recursivas. Uma funo recursiva, segundo Savitch (2004), uma funo que possui uma chamada de si prpria e que se utilizada com cuidado um timo recurso na programao.

25

Figura 4.1.1 Prottipo de funo recursiva

A funo mencionada na figura 4.1.1 realiza todos os clculos do ambiente e os atualiza. Nas linhas 7 e 8 temos dois controles muito importantes, o primeiro, Sleep uma funo fornecida por algumas bibliotecas que permite o atraso em milissegundos de processamento. Neste caso, o processamento atrasa 42 milissegundos antes de chamar a funo Update novamente e completar um lao de recurso. Este atraso evita que o programa estoure sua pilha de memria devido ao um grande fluxo de chamadas causada pela velocidade de processamento. Como dito anteriormente, na linha 8 a chamada da funo Update() cria o lao de recurso que fundamental para que o propsito do software seja atingido. Este esquema de processamento se repete at o fim da execuo do programa. Com este exemplo possvel realizar qualquer tpico prtico disponvel neste trabalho.

O importante a ser entendido o processo em si, que se trata unicamente em realizar uma srie de clculos e atualizar o ambiente de acordo com valores condicionais e repetir o ciclo. Este projeto utiliza a funo setInterval fornecida pela Application Programming Interface (API) do Action Script 3, que controla a chamada da funo de atualizao. Esta estrutura est representada na figura 4.1.2 e a base para todos os exemplos criados neste projeto.

26

Figura 4.1.2 Funo recursiva

Dentro do conceito de recurso percebe-se que o bloco de comando entre as linhas 4 e 6 consistem o corpo da funo recursiva, o qual ser executado recursivamente, isto , a funo ser rechamada ao seu trmino.

Simular a realidade com o hardware disponvel atualmente uma tarefa difcil, pois se devem considerar diversas variveis computacionais, tais como: velocidade no processamento de determinada instruo, quantidade de informaes que podero ser processadas simultaneamente, complexidade dos nmeros que se deseja obter, contagem do tempo, entre outras caractersticas. Nos prximos exemplos, fica evidente a importncia que um milsimo de segundo faz para a simulao; arredondamentos constantes, para um exemplo minucioso, podero acarretar em uma disparidade entre o pretendido e o desenvolvido.

Muitas vezes, a grandiosidade do clculo, torna o algoritmo ineficiente; no h como simular, por exemplo, o sistema solar em um ambiente computacional. Para contornar este tipo de situao, so adotados alguns valores arbitrrios, geralmente em escala reduzida, bem como a no converso entre pesos e medidas. s vezes fazem-se necessrios alguns arredondamentos forados, como por exemplo, um clculo gravitacional onde se aplica a frico; quando o valor da varivel se aproxima muito de zero, necessrio arredond-lo para existir um estado de repouso. Devido s particularidades computacionais, o clculo poderia se repetir infinitamente at que ele atinja o valor zero, no caso o valor desejado para o repouso.

27

A fim de demonstrar o desenvolvimento deste trabalho foram criados trs cenrios, os quais demonstram os conceitos de fsica propostos. O cenrio 1 trata do conceito gravitacional simples, no qual se simula uma bola de basquete em queda livre; este se relaciona aos seguintes tpicos: gravidade, velocidade, acelerao no constante, movimentao linear e coliso. No cenrio 2, denominado de lanamento oblquo, um canho pode ser controlado pelo usurio para disparar um projtil de acordo com a fora e a angulao escolhida. Os conceitos envolvidos so: velocidade, acelerao no constante, fora, coliso e gravidade. O cenrio 3, uma representao de como a gravitao universal simulada. Neste exemplo, h um planeta e uma lua que exercem uma fora gravitacional entre si; so abordados os seguintes conceitos: velocidade, acelerao constante e no constante, movimento linear e movimento angular, gravidade, gravitao universal.

4.2 INTERFACE Depois de entender como um jogo funciona diante um ambiente virtual, segue o primeiro passo na compreenso dos aspectos fsicos que compem um jogo ou simulao. A figura 4.2 mostra o layout em que as simulaes foram desenvolvidas, divergindo em algumas opes entre um exemplo e outro.

28

Figura 4.2.1 - Viso geral da simulao e apresentao dos controles

Observando a figura 4.2.1, dar uma viso bsica para que as pessoas se acostumem com a interface do programa. Na barra lateral h o nome da simulao que est sendo executada (item 1); em seguida existe a aba de controle que permite parar, executar, pausar e executar passo a passo a simulao (item 2). Em seguida, nota-se o menu de opes que permitir, de acordo com o alcance da simulao, alterar numericamente valores fsicos (item 3); adiante tambm h uma aba de informaes que mostrar estatsticas e informaes referentes simulao que est sendo executada (item 4). Por fim, na forma de uma aba lateral, existem as opes de janela que fornecero ferramentas para melhor compreender a simulao (item 5). Essas ferramentas variam de acordo com a necessidade da atividade. Sugere-se que explore as ferramentas, altere os valores fsicos e teste a simulao no computador. Desta forma possvel se familiarizar com a interface. Sob a estrutura proposta e descrita at aqui foram desenvolvidos os cenrios Gravidade, Lanamento Obliquo e Gravitao Universal.

29

4.3 CENRIO 1 GRAVIDADE SIMPLES Este primeiro exemplo conta alm da propriedade da acelerao/gravidade, como tambm a coliso para no permitir que a bola saia da rea de visualizao.

Figura 4.3.1 Viso geral do cenrio

Ao apertar o boto de play na aba de controle, a bola ser afetada pelo efeito da gravidade, colidir com o piso, sofrer efeito da reao e assim sucessivamente at perder a fora e parar. J foi dito anteriormente que para um jogo/simulao acontecer necessrio assent-lo em um ambiente de constante atualizao. Neste caso, a atualizao acontece quando se aperta o boto Play na aba de controle e a funo responsvel por esta atualizao entra em lao recursivo. A figura 4.3.2 mostra o esqueleto do exemplo da Gravidade.

30

Figura 4.3.3 Inicio da programao da Classe

Nesta classe, esto declaradas as variveis bola (linha 8), que representa o objeto que ser alvo da simulao; gravidade (linha 9), que ir acelerar a bola e velocidadeY (linha 10), que a variao da posio deslocada pela bola em relao ao tempo. Em seguida, iniciada a funo Main() (linha 13) que tem como objetivo iniciar a recursividade, realizada atravs do mtodo setInterval() (linha 15) que recebe como parmetros o nome da funo e o intervalo de tempo entre as iteraes, respectivamente.

Figura 4.3.3 - Movimentando a bola

Na figura 4.3.3, incrementa-se a programao da funo recursiva; na linha 3, foi calculado o novo valor da velocidade da bola de acordo com a soma de sua velocidade atual com a acelerao que a gravidade exerce. J na linha 4, desloca-se a posio da bola de acordo com a velocidade calculada.

31

Neste caso, quando a simulao inicia e a funo funcRecursiva() chamada pela primeira vez, a velocidade aplicada no eixo Y, anteriormente declarada como 0, incrementada ao valor da gravidade, pois a mesma est afetando-a, fazendo com que agora a velocidade no eixo Y seja 1. Depois disso, a bola que est na coordenada (0,0) tem o valor da velocidade incrementado no eixo Y, fazendo com que agora sua coordenada seja (0,1). Sendo assim, a bola se moveu um pixel no eixo Y na primeira recurso. Aps 42 milissegundos, a funo funcRecursiva() ser executada, conforme a linha 15 ilustrada na figura 4.3.2. A gravidade ir novamente incrementar o valor na velocidade Y da bola que passar a ser 2. Logo aps, a velocidade Y vai novamente alterar a coordenada Y da bola incrementando seu valor ao eixo correspondente. Desta forma, a coordenada da bola passa a ser (0, 3), ou seja, ela se moveu o dobro do que na primeira recurso. Este processo vai se repetir acelerando cada vez mais a bola at que a simulao seja parada (utilizando o boto Stop da aba de controle). Neste caso, a bola pode tomar grandes velocidades mesmo fora de cena, pois no h nenhum tratamento da velocidade mxima determinada pela resistncia do ar. Como o intuito desta simulao demonstrar o principio da gravidade no ambiente virtual a possibilidade de limitar a velocidade de acordo com a resistncia do ar no ser abordada . Para que a bola no fuja da rea de atualizao, interessante tratar a coliso com o solo. A partir do momento que se detecta a coliso da bola com o limite inferior do palco, toda a fora que ela possua (neste caso exercido apenas no eixo Y) sofre uma reao. Sendo assim, ela sofre uma contrao causada pelo impacto que influencia completamente o sentido de seu movimento. A figura 4.3.4 mostra um trecho de cdigo que trata esse tipo de coliso.

32

Figura 4.3.4 - Teste de coliso com o limite inferior do palco

A coliso dos objetos geralmente testada com uma srie de condicionais para identificar o momento do evento e definir o que fazer com os objetos envolvidos. Neste caso, determinou-se a posio Y do piso como 500px atravs da varivel limiteY declarada na linha 1 e foi adicionado na linha 10 um teste condicional na funo de atualizao. O teste verifica a cada iterao se a prxima posio da bola vai ultrapassar ou se ser igual posio Y menos a metade do tamanho da bola, conforme mostra a figura a seguir:

Figura 4.3.5 Ajuste na condicional de acordo com o centro da bola.

Divide-se o tamanho da bola por dois, pois seu ponto de referncia se localiza no centro do desenho; sendo assim, ao subtrairmos o valor limtrofe com a metade da bola, teremos o ponto ideal de coliso. Caso a condio retorne uma

33

sentena verdadeira, a execuo trabalha no escopo da condicional e inverte a velocidade Y da bola, multiplicando sua atual velocidade pela frico negativa, de forma que a faa ser arremessada novamente para cima. Nota-se que a direo da bola permaneceu na vertical, porm seu sentido foi invertido.

Figura 4.3.6 Invertendo o sentido da bola

Para finalizar a estrutura desta simulao, falta tratar a bola para que ela sofra os efeitos da frico durante a coliso e no fique pulando infinitamente. Quando a bola entra em contato com o piso, alm da reao causada pelo impacto, acontece tambm um desgaste de fora que ocorre devido frico entre ambos os corpos. Para determinar a quantidade de fora envolvida deve-se primeiro tomar base de um fator conhecido como coeficiente de atrito. A bola de basquete possui este fator em forma de varivel e seu valor est sempre em um intervalo de 0.1 at 0.9. Desta forma h uma perda da velocidade no momento em que ela invertida e, cada coliso, esse valor diminui at que a velocidade da bola seja muito prxima de zero e se estabilize.

4.4 CENRIO 2 - LANAMENTO OBLQUO

A simulao de movimentao angular uma combinao do movimento linear baseada nos vetores de velocidade Y (que no exemplo anterior foi acelerado com a gravidade), acrescido da velocidade X. Ao tratar ambos os tpicos criamos uma base slida da fsica baseada no ambiente virtual 2D. A figura 4.4.1 mostra a interface da simulao desenvolvida para exemplificar esses

34

conceitos. Trata-se de um canho que pode disparar projteis de acordo com os valores de sua fora e massa.

Figura 4.4.1 - Viso geral da simulao em funcionamento e apresentao de controles adicionais.

Essa simulao j inicia no estado de PLAY, pois o canho s poder ser controlado e disparado nessa condio. Para mudar as opes como gravidade e a massa do projtil basta apertar o boto de STOP, realizar as modificaes e apertar o boto PLAY. Durante a simulao o usurio pode controlar o canho usando as setas direcionais do teclado (UP , DOWN ). Poder tambm realizar um disparo apertando a barra de espao; a fora do disparo crescer na medida em que a barra estiver pressionada, tendo seu valor mximo de 500N. Esta simulao tambm desenha um grfico de velocidade pelo tempo e cria rastros da trajetria do projtil, ativando estas opes no menu lateral. Alguns conceitos utilizados nesta simulao j foram abordados

anteriormente como o caso da gravidade e da coliso. O que realmente ser acrescentado aqui a movimentao simultnea ocorrendo no eixo X, a massa do projtil e como ela, somada com a fora, determinam a acelerao do corpo. A princpio a bola no se move sozinha, pois na realidade sua movimentao vem de foras aplicadas em ambos os eixos. No eixo Y temos a acelerao

35

gravitacional, que como visto anteriormente, vai exercer influncia no eixo vertical do projtil atraindo-o para o cho. A movimentao que ocorre no eixo X consequncia da reao da fora causada durante o disparo do canho. No inicio da simulao, o canho se encontra a 0. Sempre que a tecla (UP ) for pressionada, o valor da inclinao do canho incrementado na varivel ngulo e, a medida que a tecla (DOWN ) for pressionada, seu valor decrementado. Este valor importante, pois vai permitir calcular a posio de partida do projtil e a frao da velocidade que ser aplicada nos eixos. Na figura 4.4.2 h um exemplo do tratamento do teclado e como ele age em cima das variveis da simulao.

Figura 4.4.2 - Tratamento do teclado e alterao dos valores da simulao

No cdigo exibido na Figura 4.4.2, h trs laos principais que controlam quais teclas esto sendo pressionadas, ilustrados nas linhas 1, 9 e 17,

36

respectivamente. Caso a execuo entre neste primeiro lao, existe outra condio que ir testar se a varivel angulo j atingiu seu valor mxi mo de 90, codificado na linha 3; seno, o objeto canho ser rotacionado em sentido antihorrio e o ngulo ter seu valor decrescido. Este mesmo procedimento aplicado ao segundo lao, e ir alterar a rotao e o ngulo com valores opostos. A rotao do canho no afetar os clculos, entretanto se faz interessante para ilustr-los. O terceiro lao ir aumentar a barra de fora e incrementar a varivel na medida em que a barra de espao estiver pressionada (linha 21 e 22) e a fora no ultrapassar seu valor limite de 500. No caso de uma exceo nesta condicional, a varivel atirar alterada para true, autorizando a funo recursiva a efetuar o disparo. Para determinar o ponto de partida da bala, h uma mira posicionada na frente do cano do canho. Esta mira precisa ser ajustada de acordo com o ngulo do cano sempre que a sua inclinao muda e, desta forma, quando a bala for disparada, sabe-se exatamente qual ser seu espao inicial. A figura 4.4.3 mostra como isso acontece.

4.4.3 Relao da diviso da fora que aplicada aos eixos.

Figura 4.4.4 - Clculo de movimentao da mira do canho.

37

A mira do canho atualizada dentro da funo recursiva, multiplicando o seno e o cosseno do radiano por 130, que a distncia do ponto de origem do canho at a posio da mira, somados com a posio do canho em relao ao palco. Em seguida, determina-se com qual acelerao esse projtil ser disparado. Este valor se baseia no princpio fundamental da dinmica proposto por Isaac Newton, tambm conhecido como segunda lei de Newton. Se a massa do objeto, defina pela varivel massa com o valor de 15kg, e a fora, pr-determinada pelo disparo, ou seja, pelo tempo em que o usurio pressionou a barra de espao, atravs da formula da fora, possvel encontrar a acelerao inicial. Como resultado, obtm-se a acelerao inicial do corpo. Para finalizar o disparo do canho, ainda preciso determinar a porcentagem da acelerao aplicada aos eixos. Suponha-se que o canho esteja a 0 e ocorra um disparo; imediatamente o projtil lanado e sua acelerao aplicada ao eixo X, pois o canho esta na horizontal. Se o canho estiver na vertical, isto , a 90, a

acelerao do projtil aplicada ao eixo Y. Entretanto, se o canho estiver a 45, a acelerao total deve ser dividida entre os dois eixos, a fim de acelerar o projtil em ambas as direes. Entende-se portanto que, o ngulo de disparo influencia completamente na diviso da fora aplicada nos eixos. Este valor pode ser encontrado atravs do seno, para o eixo Y e, cosseno para o eixo X; em seguida, multiplica-se cada um pelo o valor da acelerao inicial para determinar a velocidade. A figura 4.4.5 mostra como este calculo realizado na programao.

38

Figura 4.4.5 - Clculo para determinar a distribuio da acelerao entre os eixos do projtil.

Agora basta desenhar a bola no palco e determinar as variveis iniciais para que a recurso faa seu papel. Lembre-se que a coordenada inicial a mesma que a mira do canho.

Figura 4.4.6 - Desenhando o projtil no palco

Agora a bola passa a sofrer os efeitos fsicos causados pelo ambiente. Entretanto no exatamente como visto na bola de basquete no exemplo da gravidade. Agora o mvel possui uma acelerao inicial causada pela fora gerada no canho. Para que a simulao ocorra normalmente basta apenas tratar as colises e aplicar as foras sobre o projtil.

39

Figura 4.4.7 - Tratamento das colises com as bordas do cenrio

40

Figura 4.4.8 Sequncia de disparo do canho

4.5 CENRIO 3 - GRAVITAO UNIVERSAL Esta simulao utiliza o princpio da inrcia proposto por Isaac Newton, tambm conhecida como Primeira Lei de Newton. A figura 4.5.1 ilustra a interface desta simulao.

41

Figura 4.5.1 Viso geral da simulao

Neste exemplo, h um planeta no centro da rea de atualizao, prximo a um corpo menor que seria comparado a uma lua. Por padro, foi definido os valores arbitrrios de massa para o planeta e para a lua, de 1500kg e 200kg, respectivamente. O planeta possui um campo gravitacional que representado por um circulo; quando animado, ir expandir seu raio de acordo com o valor previamente estipulado no menu. Este exemplo permite modificar alguns valores fsicos, tais como a constante gravitacional universal G e a velocidade inicial sobre o eixo X e Y da lua. Tambm possvel desenhar a trajetria que a lua percorrer durante a execuo. Com os valores pr-definidos, a lua realiza uma rbita sobre o planeta. Isto acontece pois a lua j possui velocidade e, desta forma, juntamente com a constante gravitacional, ela realiza um movimento orbital elptico. Entretanto, possvel arrastar a lua para qualquer parte da rea de simulao e determinar seus valores de acelerao inicial em ambos os eixos.

42

Primeiro importante entender que o clculo s acontece quando a lua est no raio gravitacional do planeta. Do contrrio, a nica movimentao que acontece a fora da velocidade inicial da lua. Este tratamento realizado na figura 4.5.2.

Figura 4.5.2 - Estrutura bsica da simulao

Na figura 4.5.2, tem-se a funo de recurso na linha 8 e um condicional na linha 13 responsvel por testar se a lua est colidindo com o raio de gravidade que o planeta exerce. Se a lua no est dentro do raio de gravidade, sua movimentao pode acontecer se houver uma velocidade inicial X e Y, do contrrio o corpo fica inerte. Para constituir o escopo do condicional que realizar os clculos da teoria gravitacional universal, inicialmente calcula-se o ngulo da reta fictcia entre o planeta e a lua, conforme mostra a figura 4.5.3.

43

Figura 4.5.3 Relao trigonomtrica do ngulo a ser calculado

Encontrar o valor do ngulo fundamental para que seja possvel dar continuidade aos clculos, pois ele serve de base para alguns conceitos matemticos. A princpio, deve-se determinar a tangente da reta, representada por tg, que se forma entre o planeta e a lua para depois encontrar o angulo . Este processo exemplificado atravs da figura 4.5.4, que mostra como o calculo realizado na programao do exemplo.

44

Figura 4.5.4 - Clculo da tangente de acordo com as posies dos objetos

Para encontrar os valores referentes aos catetos, so utilizadas as posies atuais dos corpos, conforme mostra a figura anterior. Isto , para o cateto oposto, que possui uma direo vertical, atribui-se o eixo y e, para o cateto adjacente, o eixo x, j que sua direo se orienta na horizontal, linhas 9 e 10 respectivamente. Agora necessrio utilizar o valor da tangente para encontrar o angulo da reta utilizando a funo Atan (valor), exemplificada na linha 12 da figura 4.5.5, que retorna o valor do ngulo em radianos. Porm, como a inteno obter o valor em graus a seguinte formula aplicada:

45

Figura 4.5.5 Converso de radianos para graus e clculo do ngulo da reta atravs da funo Atan();

Entretanto, o valor do ngulo ainda precisa ser tratado, pois o flash no trabalha com o valor total da circunferncia e sim com o intervalo de 0 a 90 para cada quadrante. Este intervalo descrito na figura 4.5.6.

46

Figura 4.5.6 Relao do intervalo angular entre a trigonometria e o Flash

Para o intervalo se compreender entre 0 e 360 precisa-se realizar um condicional na programao; este procedimento necessrio porque de forma padro no possvel determinar em qual quadrante a lua se encontra apenas possuindo o valor angular fornecido pelo flash. Este processo de tratamento ilustrado na figura 4.5.7.

47

Figura 4.5.7 - Condicional que corrige e determina o ngulo no intervalo trigonomtrico.

A estrutura mostrada na figura 4.5.7 realiza um condicional encadeado que se tem inicio na linha 7. Primeiramente, verifica se a posio da lua em relao ao eixo X menor que a do planeta (linha 11) e, se for verdadeira, acrescentado 180 no angulo. Se esta condio for falsa, ser testada a prxima condio (linha 15), que determina tanto se a posio da lua em relao ao eixo X quanto ao eixo Y maior que a do planeta. Se este condicional for verdadeiro, ento acrescentado 360 no angulo. Desta forma possvel determinar exatamente a posio da lua e aplicar as foras no sentido correto para cada um dos possveis quadrantes. A figura 4.5.8 demonstra como as foras tm que agir de acordo com quadrante e o plano cartesiano virtual.

48

Figura 4.5.8 - Relao do sentido das foras de acordo com o plano cartesiano computacional

Para determinar o sentido da lua de acordo com a figura 4.5.8, necessrio aplicar uma srie de condicionais encadeados afim de determinar a posio e aplicar o sentido correto nas variveis. A figura 4.5.9 um exemplo do cdigo utilizado neste procedimento.

49

Figura 4.5.9 - Condicionais encadeados que identificam o sentido do mvel e retorna o ngulo a medida original

Agora calcula-se qual a distncia em pixels do planeta at a lua. Esta medida importante para no futuro calcular a gravitao universal. Para isso, usaremos o princpio do teorema de Pitgoras. A figura 4.5.10 mostra este clculo sendo realizado no cdigo fonte da simulao.

50

Figura 4.5.10 - Clculo de distncia dos corpos baseado no teorema de Pitgoras

Para finalizar a srie de clculos matemticos e partir para a fsica propriamente dita, falta determinar a porcentagem de fora aplicada nos eixos da lua. Isto aconteceu tambm no exemplo anterior; este conceito est ligado inclinao da lua em relao ao planeta. Se ela estivesse exatamente a 0, a gravidade teria seu efeito apenas no eixo X; j a 90 todo o efeito gravitacional se voltaria para o eixo Y. Entretanto, quando o angulo est a 45 deve haver uma porcentagem da fora agindo em ambos os eixos. Este clculo serve para determinar a quantidade de fora que ser aplicado na horizontal e na vertical.

Figura 4.5.11 - Determinando a porcentagem de fora aplicada nos eixos.

Para concluir a etapa da fsica, utiliza-se a Primeira Lei de Newton conforme demonstra a figura 4.5.12.

51

Figura 4.5.12 - Calculando a fora que o planeta est exercendo sobre a lua baseando-se na lei da gravitao universal

J que o valor da fora da Gravitao Universal conhecido torna-se possvel calcular a acelerao da lua, conforme mostra a figura 4.5.13.

Figura 4.5.13 - Clculo da acelerao, distribuio e aplicao na velocidade da lua

Com isso, conclui-se esta abstrao da Gravitao Universal. Quanto maior a distncia entre os corpos, menor ser a fora que um exerce sobre o outro. Isso explica o porqu geralmente as rbitas planetrias so elpticas, parablicas ou hiperblicas e tambm demonstra uma relao da acelerao dos corpos de acordo com a proximidade.

52

5 RESULTADOS

No primeiro exemplo, a bola foi afetada pela gravidade atravs de uma funo recursiva, que funciona como um atualizador do ambiente. A funo responsvel por proporcionar todo o movimento da simulao, incluindo a coliso da bola com os limites inferiores, assim como a reao causada por este impacto que, por sua vez, arremessa a bola novamente para cima, gerando um desgaste e repetindo todo o processo at que a velocidade seja nula.

O lanamento oblquo, demonstrado no segundo exemplo, funciona da mesma forma que o primeiro exemplo, entretanto, uma fora aplicada ao projtil e esta se dissipa em ambos os eixos, de acordo com a angulao do canho e utilizando recursos trigonomtricos, como o seno e cosseno. A coliso ocorre com os limites inferiores, superiores e laterais e, o desgaste, acontece quando a bola quica pelo palco.

O terceiro exemplo trata a gravidade em uma escala mais ampla, onde h atrao entre dois corpos no universo. Conclui-se que, quanto menor a distncia entre os corpos, maior a fora de atrao que eles exercem e, consequentemente, maior velocidade no corpo de menor massa. Esta relao se da atravs da constante gravitacional universal (G) que diferente da constante da acelerao gravitacional (g).

5.1 CONCLUSO Em geral, a fsica pode ser aplicada em um jogo ou simulao de acordo com o nvel de realidade que se deseja atingir. Isto , simulaes que exigem maior preciso necessitam de implementao fsica mais elaborada que implica em um projeto mais robusto. Independente do nvel que se almeja, a funo recursiva fundamental para atingir o objetivo esperado. Nota-se tambm que a matemtica se faz necessria para o desenvolvimento das simulaes e aplicao do contexto da fsica; ela fundamental para obter as variveis necessrias para o processamento das equaes.

53

De acordo com o problema apresentado neste trabalho, existe uma melhor compreenso da fsica mecnica quando ela exemplificada atravs de jogos eletrnicos ou simulaes. Isto acontece por que clculos que parecem ser abstratos tornam-se algo visvel s pessoas que acompanham o

desenvolvimento. O simples fato de perceber que as teorias e frmulas podem ser colocadas a prova em uma simulao virtual, refora a ideia de que a fsica um campo amplamente difundido no cotidiano, sendo aplicado em grande parte das situaes do dia a dia.

54

6 REFERNCIAS ADOBE SOFTWARE SYSTEMS. Adobe Flash Professional. Disponvel em <http://www.adobe.com/br/products/flash.html>. Acesso em Abril. 2012. ADOBE SOFTWARE SYSTEMS. Programao do Adobe Actionscript 3.0. <2012>. Disponvel em < http://help.adobe.com/pt_BR/ActionScript/ 3.0_ProgrammingAS3/flash_as3_programming.pdf >. Acesso em Abril 2012. AGUILAR, Juan. Definio de fsica O que a fsica?. 2008.Disponvel em: <http://www.mundovestibular.com.br/articles/2645/1/DEFINICAO-DE-FISICA---OQUE-E-A-FISICA/Paacutegina1.html >. Acesso em: Maro 2012. BONJORNO, Jos Roberto; RAMOS, Clinton. et al. Fsica Fundamental. Volume nico. FTD, 1999 BOURG, David M. Physics for Game Developers. 1. Ed. Sebastopol, CA: OReilly, 2002. BUECHE, Frederick J; JERDE, David A. Principles of Physics. 6. Ed. USA: WCB/McGraw-Hill, 1995. COMPUTER HISTORY. Spacewar. Disponvel em: < http://pdp1.computerhistory.org/pdp-1/?f=theme&s=4&ss=3 >. Acesso em: Maro 2012. EBERLY, David H. Game Physics. Volume nico. Elsevier, inc. San Francisco, CA. 2004. HALLIDAY, David ; RESNICK, Robert; WALKER, Jearl. Fundamentos de Fsica. 6. Ed. Rio de Janeiro: LTC, 2001.
HENRY, Calen; KARSEMEYER, Jacob. Physics in Mass Market Games. 2008.

Disponvel em: <http://www.gamecareerguide.com/features/534/physics_in_mass_market_games .php >. Acesso em: Maro 2012.

55

MOITA, Filomena Ma. G. da Silva Cordeiro. Jogos Eletrnicos: Contexto cultural, curricular juvenil de Saber de experincia feito. 2006 .Disponvel em: <http://www.anped.org.br/app/webroot/reunioes/30ra/trabalhos/GT06-3253-Res.pdf>. Acesso em: Maro 2012. PROTSSIO, Arthur. Game Design: Anlise e Comentrios . 2008. Disponvel em: < http://www.gamecultura.com.br/index.php?option=com_content &view=article&id=554#axzz1uKGi5OEN > Acesso em: Maro 2012. SAVITCH, Walter J. C++ Absoluto. 1. Ed. Pearson Education, Inc. , So Paulo. 2004

56

Anexo I: Cdigo fonte cenrio 1 Gravidade simples public function Gravidade() { X = bola.x; Y = bola.y; iniX = bola.x; iniY = bola.y; raio = bola.width / 2; // RAIO DA BOLA //Opo da gravidade localizada no painel. menu.opt.TXT_grav.text = String(gravidade);

//LISTENERS this.addEventListener("STOP", GLOBAL_stop); this.addEventListener("PLAY", GLOBAL_play); this.addEventListener("PAUSE", GLOBAL_pause); this.addEventListener("STEP_PLAY", GLOBAL_stepPlay);

// O mtodo setInterval far a recursividade da funo funcRecursiva, definindo um atraso de 41ms entre suas iteraes; // 41ms equivale a aproximadamente 24fps

57

seta.visible = false; grafico.x = 230; grafico.y = 120 addChild(grafico); } private function funcRecursiva() //FUNO PRINCIPAL DA ATIVIDADE { //CALCULO DE ESTATISTICAS tempo_ms += FPS; tempo_seg = Math.floor(tempo_ms / 1000); //MOVIMENTACAO Vy += gravidade; Y += (Vy / 9.8); rotacao = (Vy / 9.8); if( rotacao < 0 ) rotacao *= -1; //CONDICIONAIS

58

if( Y >= 490 - raio ) { Y = 490 - raio; Vy *= -friccao; rotacao = 0;

} //APLICA A GRAVIDADE E A ROTAO bola.y = Y; bola.rotation += rotacao; atualizaInfo(); // ATUALIZA INFO } //... O restante do cdigo comentado est contido no disco que acompanha o trabalho

59

Anexo II: Cdigo fonte cenrio 2 Lanamento Oblquo //CALCULO DE ESTATISTICAS tempo_ms += FPS; //Tempo em Milissegundos. tempo_seg = Math.floor(tempo_ms / 1000); //Tempo em segundos //CALCULO DO CANHO if ( !atirar ) { //CONTROLES DO CANHO if ( UP ) { if ( angulo < 90 ) { mov_canhao.canhao.rotation--; angulo++; //CONTROLA O ANGULO DO CANHO } } if ( DOWN ) { if ( angulo >= 0 ) {

60

mov_canhao.canhao.rotation++; angulo--; } } if ( SPACE ) { if ( forca < 500 ) { upBar.barraForca.forceLine.width += 5; forca += 10; preparar = true; this.menu.infor.TXT_forca.text = String (forca) + " N"; }

} else { upBar.barraForca.forceLine.width = 1; //RESETA BARRA DE FORA if ( preparar ) {

61

atirar = true; preparar = false; } } mov_canhao.mira.x = mov_canhao.canhao.x + Math.round(130 * Math.cos(angulo / 180 * Math.PI)); mov_canhao.mira.y = mov_canhao.canhao.y - Math.round(130 * Math.sin(angulo / 180 * Math.PI)); } else //NESTE MOMENTO H UM TIRO OCORRENDO { tempo_ms_disparo += FPS;

if ( bola == null ) { //REALIZA O TIRO DO CANHO bola = new MOV_bola(); bola.x = mov_canhao.x + mov_canhao.mira.x; bola.y = mov_canhao.y + mov_canhao.mira.y; this.addChild(bola); aceleracaoInicial = forca / massa;

62

vX = ( (Math.cos(angulo / 180 * Math.PI) * aceleracaoInicial)); vY = ( (Math.sin(angulo / 180 * Math.PI) * aceleracaoInicial)); } else { X = bola.x; Y = bola.y; vY -= (gravidade / 9.8); X += vX; Y -= vY ; if ( Y > 470 ) //COLISO COM O TETO { vY *= -friccao; vX *= friccao; Y = 470;

} if ( Y < 35 ) //COLISO COM O PISO { vY *= -friccao;

63

vX *= friccao; Y = 35; } if (X > 870) //COLISO DO LADO DIREITO; { X = 870; vX *= - friccao; } if (X < 250) //COLISO DO LADO ESQUERDO; { X = 250; vX *= - friccao; } aceleracaoTotal = vX + vY; bola.rotation = 0; bola.x = X; bola.y = Y; /.... O restante do cdigo comentado est contido no disco que acompanha o trabalho

64

Anexo III: Cdigo fonte cenrio 3 Gravitao Universal //CALCULO DE ESTATISTICAS tempo_ms += FPS; //Tempo em Milissegundos. tempo_seg = Math.floor(tempo_ms / 1000); //Tempo em segundos.

//REALIZA CALCULO DAS CONDIES DO CORPO if( lua.hitTestObject( mov_areagravidade ) ) { catetoY = planeta.y - lua.y ; catetoX = lua.x - planeta.x ;

tangente = ( catetoY ) / (catetoX ); angulo = Math.round( Math.atan(tangente)/(Math.PI / 180 )); if( lua.x < planeta.x ) { angulo += 180; }

else if (lua.x >= planeta.x && lua.y > planeta.y) { angulo += 360;

65

} if( angulo >= 0 && angulo <= 90) { sentidoX = -1; sentidoY = 1; } else if( angulo > 90 && angulo <= 180 ) { sentidoX = 1; sentidoY = 1; angulo -= 180; } else if( angulo > 180 && angulo <= 270 ) { sentidoX = 1; sentidoY = -1; angulo -= 180; }

else if( angulo > 270 && angulo <= 360) { sentidoX = -1;

66

sentidoY = -1; angulo -= 360; } if (angulo < 0) angulo = angulo * -1; distancia = Math.round( Math.sqrt( Math.pow( catetoX, 2 ) + Math.pow( catetoY, 2 ) ) );

var forca = (const_gravitacional / 9.8) * ( massa_terra) / Math.pow( distancia , 2 ) ); var aceleracao = forca / massa_lua;

(massa_lua *

porcentoX = Math.cos(angulo / 180 * Math.PI)*100; porcentoY = Math.sin(angulo / 180 * Math.PI)*100; aceleracaoY = (porcentoY * aceleracao) / 100; //EIXO X aceleracaoX = (porcentoX * aceleracao) / 100; //EIXO Y velocidadeX += aceleracaoX * sentidoX; //EIXO X velocidadeY += aceleracaoY * sentidoY; //EIXO Y velocidadeTotal = velocidadeX + velocidadeY + (InicialVeloX / 9.8) + (InicialVeloY / 9.8);

67

else { catetoY = planeta.y - lua.y ; catetoX = lua.x - planeta.x ;

distancia = Math.round( Math.sqrt( Math.pow( catetoX, 2 ) + Math.pow( catetoY, 2 ) ) ); } lua.x += velocidadeX + ( InicialVeloX / 9.8 ); lua.y += velocidadeY + ( InicialVeloY / 9.8 ); //... O restante do cdigo comentado est contido no disco que acompanha o trabalho

You might also like