Arquivo

Textos com Etiquetas ‘games’

Box2D, a Engine de física para Games em Flash

12, abril, 2009 Márcio Silva 2 comentários
Box2D Home Page

Box2D Home Page

Olá Pessoal,

De hoje em diante começarei um conjunto de tutoriais que explicam o funcionamento básico de uma grande ferramenta para os desenvolvedores de Games em flash. Trata-se de uma poderosa API para simulação Física de Corpos Rígidos, é de extrema importância que você tenha familiaridade com conceitos físicos como: massa, força, atrito, colisão, inércia, movimento, dentre outros conceitos que estão intimamente ligados a Dinâmica de Corpos Rígidos.

 

Exemplos do que pode ser feito com o Box2D. Use as setas do teclado para fazer o objeto andar.


Fonte: Emanuele Feronato.

De forma alguma darei uma aula de física aqui, dessa forma, procure conteúdos pela internet que falem sobre os itens que citei acima. No entanto, basta pedir que indicarei links para que vocês possam estudar. De imediato posso indicar um dos melhores sites para que você possa procurar sobre esses conteúdos: 

Wikipédia aqui você irá encontrar com certeza os tópicos que mencionei acima.

Também assumirei que você conhece muito bem Action Script 3.0 ou AS3, pois também não é o intuito aqui ensinar como criar uma classe no AS3 ou manipular o Macromédia Flash. O principlal objetivo é o mostrar o funcionamento de Engine da Física no flash, mostrar os principais conceitos de física empregados em cada linha de código.

Nesse primeiro artigo, apresentarei os conceitos mais básicos que você necessita saber antes de prosseguir.

ATENÇÃO: Se não entender a definição dos termos apresentados abaixo, não adianta prosseguir nos próximos artigos, pois não entenderá nada do que estará acontecendo. Sei que provavelmente você pode fazer um CTRL + C e CTRL + V do código para testar o funcionamento. Mas e aí? Você vai aprender alguma coisa fazendo assim? E se funcionar claro, pois muita gente copia e dá um monte de erro, pois as belas Aspas “” do HTML causam esses erros.

Bom, avisos dados agora vamos ao que interessa, alguns termos eu deixarei em inglês mesmo, por que é da forma que aparecerá na API. Os conceitos iniciais são os seguintes:

Rigid Body / Corpo Rigido: Este é um dos mais importantes conceitos, a idéia básica é que em um corpo rígido se marcarmos dois pontos neste corpo, a distância entre esses dois pontos será sempre constante. Exemplo: um diamente. Na API esse corpo rígido se chamará body

Shape/ Forma: É qualquer parte da Geometria 2D fixada ao corpo rígido. Ela pode possuir propriedades físicas como atrito e restituição.

Constraint / Restrição: Uma restrição remove graus de liberdade de um corpo. Em 2d existem 3 graus de liberdade e em 3D existem 6. No caso de 2D um corpo pode transladar (deslocar) sobre qualquer um dos eixos (x, y) e realizar um movimento de rotação em torno do eixo perpendicular ao plano formado por x e y. Se pendurarmos um corpo numa parede como se fosse um pêndulo, estaremos retirando 2 Graus de liberdade desse corpo, pois ele conseguirá apenas realizar rotações em torno do eixo de fixação.

Contact Constraint / Restrição de contato: Nada mais é do que não permitir que dois corpos possam penetrar um no outro, aí vem a famosa lei de Newton: “Dois corpos não podem ocupar o mesmo lugar ao mesmo tempo”. Esta restrição é implementada pelo próprio Box2D.

Joint / Junção: É uma restrição para manter 2 ou mais corpos rígidos ligados. A Junção pode ser Limite e Motora.

Joint Limit / Junção Limite: Uma junção limite restringe a amplitude de movimento de uma articulação. Pode representar um braço humano por exemplo.

Joint Motor / Junção Motora: Junção motora coordena o movimenta de corpos conectados conforme os graus de liberdade.

World / Mundo: É um conjunto de corpos, formas, e restrições que interagem entre si.

Espero que tenham assimilado os conceitos básicos apresentados na API, eles são importantes para que você entenda os códigos que serão estudados.

Até a próxima.

Fonte: http://www.box2d.org e http://www.emanueleferonato.com