Jump to content

Breakout


camurso_
 Share

Recommended Posts

Viva,

Estou a criar um jogo tipo breakout em js e só me falta uma pequena coisa que não consigo fazer.

A minha bola anda sempre pixel a pixel, mas sempre o mesmo sentido, ou seja, ou anda sempre para cima ou para baixo (alterando as coordenadas do top) e para a esquerda ou para a direita (alterando as coordenadas do left, obviamente). O que se passa é que quando bate na raquete, a bola faz sempre um ângulo de 90º (ex: o ritmo ao que o left muda mantêm-se, simplesmente multiplico o ritmo ao que o y muda por (-1), para lhe mudar o sentido da trajectória). O mesmo acontec quando bate nas paredes verticais (multiplico o ritmo de mudança do x por -1 e o ritmo de mudança do y mantêm-se), assim como no topo (onde multiplico o ritmo de mudança do y por -1). Ora bem... Eu sei que há uma fórmula qualquer matemática que tem a ver com trigonometria e com o comprimento da raquete para dar aqueles efeitos que todos conhecemos no jogo (se a bola bater na quina da raquete, por exemplo, não só muda o sentido dos y como muda o dos x - em que a bola, parece que volta para trás).

Alguém percebeu o que quiz dizer? E, se sim, alguém conhece/tem esse algoritmo?

Pode ser em qualquer linguagem que eu desenmerdo-me, pode ser um exmeplo, pode ser uma função, pode ser, até, em pseudo-código.

Obrigado

<_<

bump

Link to comment
Share on other sites

Porque não fazes isso à mão e cagas para trigonometrias?

Por exemplo, se ela vier da esquerda e bater na quina da esquerda, reduzes a velocidade para metade, se bater na quina da direita, aumentas a velocidade para o dobro...

etc?

Link to comment
Share on other sites

para isso que queres acho que terias que dividir a raquete por áreas de embate, sendo o mínimo 3 áreas (canto esquerdo / centro / canto direito).

Consoante o embate nestas 3 áreas seria aplicado determinado ângulo.

Mas para te dar uma fórmula já é mais chato, também vai depender do teu código.

Para leres um pouco, pode ajudar: http://www.allegro.cc/forums/thread/601650

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.