Física no Construct 2: O básico

20

Tagged

Stats

21,191 visits, 23,561 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Published on 4 May, 2013. Last updated 25 Feb, 2019

O Construct 2 inclui o comportamento Physics, desenvolvido por Box2DWeb. Isso permite que você tenha objetos se movendo com física do mundo real - veja esta demonstração para ver como funciona. Física pode deixar seu jogo divertido e cativante! Este tutorial te ensina como colocar Física no seu jogo.

Se você já teve aulas de Física na escola, você vai ver que algumas das coisas que você aprendeu também se aplicam a Física do Construct 2. Eu ainda explicarei o básico caso você não tenha aprendido o conceito antes. Interessado em um pouco de teoria? Talvez você queira ler este artigo do Wikipedia sobre as Leis de Newton. Este link também pode lhe ser útil.

O Construct 2 vem com vários exemplos de Física! Clique Browse all examples (navegar todos os exemplos) na tela inicial, e todos os demos sobre física começam com "Physics - ", como por exemplo "Physics - basics.capx". É uma boa idéia dar uma olhada neles. O conteúdo deste tutorial irá fazer bem mais sentido se você já os tiver visto em ação.

Como adicionar Física

Selecione o objeto que você quer que tenha Física. Na barra Properties (propriedades), clique Add / Edit (adicionar / editar) na seção Behaviors (comportamentos). Clique no sinal de mais verde, e na lista selecione Physics (física). Pronto!

Chamaremos qualquer objeto que tenha o comportamento de Física de "objeto físico".

Gravidade

Por padrão, gravidade está presente em objetos físicos, o que os acelera para baixo. A gravidade padrão é 10 (lembre-se, o plano Y cresce para baixo no Construct 2). Se você quiser desligar a gravidade, você pode usar a ação Set gravity em qualquer objeto físico. Nota: a gravidade se aplica ao "mundo" inteiro. Se você definir a gravidade de um objeto como zero, a gravidade é desligada para todos os objetos.

Criando o cenário

Você não quer que o chão do seu jogo também caia pelo lado de baixo da tela!

Mesmo em jogos com "gravidade zero", uma peça do cenário seria empurrada quando alguma coisa colidisse com ela, e possivelmente começaria a girar. (Terceira lei de Newton: "A toda ação há sempre uma reação oposta e de igual intensidade", o que significa que o cenário é empurrado um pouco também.)

A maior parte do tempo queremos simular o cenário sólido como rocha: ele não pode ser puxado pela gravidade, nem empurrado por outras coisas colidindo com ele. Defina a propriedade Immovable (imovível) do objeto físico para Yes para simular isso.

O objeto então é simulado como se possuísse massa infinita. Ele não irá a lugar algum!

Nota: Objetos físicos apenas interagem com outros objetos físicos. Colocando o comportamento Sólido no chão não terá efeito nos objetos físicos. Eles ignoram qualquer coisa que não tenha o comportamento de Física. Objetos físicos irão atravessar objetos 'Sólidos', a não ser que você lhes coloque o comportamento de Física e os deixe imóveis.

Outras propriedades físicas

Vamos ver rapidamente as outras propriedades do comportamento de física:

Collision mask (máscara de colisão)

Isso define o formato da colisão do objeto. Por padrão é use collision polygon (usar polígono de colisão). Se você abrir o editor de imagem e clicar na ferramenta collision polygon (polígono de colisão), você pode mudar os pontos que irão afetar como o objeto colide com outros. Cuidado para não usar muitos pontos, ou o jogo pode ficar lento.

Se for definido como bounding box (caixa delimitadora) ou circle (círculo), o polígono de colisão será ignorado. Ao invés disso, ele usará o retângulo que delimita o objeto, ou um círculo que é útil para objetos rolantes como bolas.

Prevent rotation (prevenir rotação)

Se ativado, o objeto nunca irá rodar mesmo se atingindo em um ângulo. Isso pode ser útil se você quiser controlar o ângulo do jogador você mesmo. Por exemplo, em um jogo de plataforma, você provavelmente não quer que o jogador tropece e caia de cara toda vez que ele tentar correr.

Density (densidade)

Densidade é usada para determinar a massa de um objeto. A massa define o quão difícil é mover um objeto. (Note que "peso" não é o termo correto - peso depende da gravidade, e objetos ainda possuem massa em gravidade zero. Objetos com grande massa ainda são difíceis de mover em gravidade zero). A massa do seu objeto é determinada pela densidade multiplicada pela área do "formato de colisão" do objeto. Então objetos enormes possuem bem mais massa que objetos pequenos, mesmo se tiverem a mesma densidade.

Se você tiver um bloco de concreto, você deve dar a ele uma densidade muito maior do que um bloco de algodão!

Friction (fricção)

Fricção afeta o quanto um objeto é desacelerado enquanto move-se contra outro objeto. Nenhuma fricção é como patinar no gelo, e alta fricção é como arrastar um tijolo sobre concreto. É mais difícil puxar o tijolo no concreto do que no gelo.

Elasticity (elasticidade)

A elasticidade (ou "ricochete" ou "restituição") afeta o quão saltitante um objeto é. Um objeto com alta elasticidade irá pular alto quando jogado no chão, e um objeto sem nenhuma elasticidade simplesmente não irá pular.

Linear damping (amortecimento linear)

Objetos se movem com a mesma velocidade na mesma direção para sempre, a não ser que algo os afete. Imagine jogar uma bola de tênis no espaço - ela irá continuar para sempre. (Primeira lei de Newton: "Todo corpo continua em seu estado de repouso ou de movimento, a menos que seja forçado a mudar aquele estado por forças aplicadas sobre ele"). Na Terra, forças como gravidade, fricção e resistência do ar tornam isso menos perceptível.

No seu jogo com física, você pode ver que seu objeto move-se para sempre quando empurrado, de acordo com a primeira lei de Newton. Você pode querer simular fricção contra o chão, ou resistência do ar. Ao aumentando o amortecimento linear, o objeto irá desacelerar gradualmente por si só, até parar. Um amortecimento linear igual a zero é como no espaço - objetos se moverão para sempre.

Angular damping (amortecimento angular)

O amortecimento angular é similar ao conceito de amortecimento linear, mas está relacionado a rotação do objeto. De novo, no espaço, um objeto que está girando irá girar com a mesma velocidade para sempre. Ao aumentar o amortecimento angular, o objeto irá girar cada vez mais devagar até parar. Note que o amortecimento irá ocorrer não importando o quão rápido o objeto está se movendo.

Dicas gerais de física

Performance

Simulações de física requerem muito da CPU. Pode ser necessário bastante poder de processamento para realizar os cálculos. Para certificar-se que seu jogo rode sem problemas, é recomendado não usar muitos objetos de uma vez. Mais de 100 objetos físicos de uma vez pode causar lentidão. E também, telefones e tablets possuem bem menos poder de processamento que um computador. Se você tem aparelhos móveis em mento, limite-se a 20-30 objetos físicos.

Note que objetos que param completamente, e não estão se movendo ou girando, são "colocados para dormir" pela simulação. Então, eles não precisarão mais ser processados. Se o objeto for atingido por outro, ele "acorda" e começa a ser processado de novo. Entretanto, se o objeto estiver se movendo, mesmo que pouco, ele não será colocado para dormir. Por exemplo, objetos em uma torre de blocos irão permanecer acordados. É algo útil ter em mente quando considerar a performance: se você tiver centenas de objetos dormindo, e no máximo 20-30 se movendo (mesmo que pouco), o jogo deverá rodar sem problemas.

Estabilidade

Simulações de física não são inteiramente precisas. Se você tentar simular coisas irrealistas, como um enorme objeto de concreto atingindo um bloco de algodão a velocidade do som, o resultado também não será realista. De fato, qualquer coisa envolvendo forças extremas pode fazer com que a simulação se torne instável (irrealista, como por exemplo objetos se movendo através ou dentro um do outro).

Coisas como objetos extremamente pesados empilhados em cima de caixas leves, enormes pilhas de objetos, ou objetos se movendo extremamente rápido tendem a causar instabilidade. Tente deixar tudo no seu jogo dentro de proporções razoáveis.

O mesmo se aplica ao tamanho dos objetos. Objetos muito pequenos (menos de 5 pixels) ou muito grandes (mais de 500 pixels) podem ser simulados de forma irrealista. Tente deixar todas larguras e alturas entre 5-500 pixels, e evite proporções extremas (como objetos com 5x500 pixels).

Em outras palavras, Física funcionará melhor entre objetos do massa e tamanho semelhantes interagindo a velocidades relativamente baixas.

Movimento manual & outros comportamentos

Se você mover objetos por eventos (como definir a posição X e Y) ou outros comportamentos (como adicionar o movimento em 8 direções ao objeto físico), a simulação de física fará o que puder para levar isso em consideração. Entretanto, geralmente é mais realista usar força e impulsos ao objetos com física. Isso deixa tudo "no mundo da física" e realista.

Por exemplo, se você usar a ação Set Position (definir posição) para mover um objeto para o outro lado da tela instantaneamente, ele foi tecnicamente teleportado. Isso não é um fenômeno físico comum, então o resultado pode ser irrealista também. Para compensar, o comportamento de física vai ver isso e simular que o objeto subitamente moveu-se extremamente rápido até seu ponto de destino em um tick (cerca de 1/60 segundos). Isso é uma enorme aceleração, velocidade, e então desaceleração. Lembre-se, para que a simulação seja estável, você deve evitar extremos.

Embora você possa adicionar o comportamento de Plataforma a um objeto físico, os dois não vão se dar bem. Novamente, é melhor realizar o efeito aplicando forças. Veja o exemplo Physics - rolling platformer que vem junto com o Construct 2 para uma demonstração de como fazer isto.

Conclusão

Pode ser divertido ter Física nos seus jogos, mas não se esqueça: evite ter muitos objetos, evite extremos, tente mover objetos apenas com forças e impulsos - e não faz mal conhecer um pouco de teoria!

Feliz com o básico? Você pode estar interessado no próximo tutorial: Physics in Construct 2: Forces, impulses, torque and joints.

  • 0 Comments

Want to leave a comment? Login or Register an account!