Jump to content
Sign in to follow this  
camurso_

Breakout

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

Share this post


Link to post
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?

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • 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.