Holaa, tengo una duda con la creacion de este juego.
Mi problema es que cuando la pelota rebota, no se como darle el angulo invertido... Por ejemplo, la pelota rebota contra la base que se mueve y que salga disparada para el otro lado... Lo mismo seria contra las paredes o los ladrillos.
Tengo algo asi:
void Bola::moverBola(int nave_x, int nave_y, int nave_ancho, int nave_alto, int pantalla_ancho, int pantalla_alto) { if ((y>=nave_y-circunferencia) && (y<=nave_y+nave_ancho) && (x>=nave_x-circunferencia) && (x<=nave_x+nave_ancho)) { // Se detecto la colision con la base, tendria que disparar para el lado contrario al que viene a bola } //Y aca tendria que ir las nuevas direcciones para el angulo X, Y }
Espero que me puedan ayudar :D, saludos!
Mirate este
Mirate este hilo:
http://www.scenebeta.com/node/23605
yo pondria estadospor
yo pondria estados
por ejemplos si viene de - x a + x
pondria
int direccion = 1
y si viene al reves
int direccion = 2
y luego
No me explico muy bien perdona si no entiendes algo avisaAsi es como lo hago en mi pingpongEdito:Por si no quedo muy claro te pongo un fragmento de mi pingpong
Primero que muchas gracias
Primero que muchas gracias por tu respuesta!
- Osea lo que decis es crear una variable "direccion" donde guarde la ultima direccion de la bola no? Y luego dependiendo de la ultima direccion invertir el eje...
Pero suponiendo que cuando venga la bola e invierta el eje, siempre va a tener el mismo angulo no? (pero invertido)... Mas especifico: choque donde choque no va a volver siempre al mismo lugar?
Tienes k tener aceleracion
Tienes k tener aceleracion tienes k ponerle una variable para la aceleracion de x y la aceleracion de y(en mi caso uso una para los dos y siempre hace lo mismo)y hacer que el valor de la aceleracion cambie en funcion del lugar de la pala que rebote la pelota(no es lo mismo la esquina que le centro).
Si tenes razon, ahora con el
Si tenes razon, ahora con el tema de la aceleracion... Se puede controlar hasta que limite quiere que aumente? Porque al implementarlo en el sistema que estoy haciendo una ves que la bola choca con algo empieza a aumentar la aceleracion hasta que practicamente es imposible verla jaja, y lo peor que pasa en pocos segundos de haber arrancado el juego D:
Pon el codigo a ver porke
Pon el codigo a ver porke pasa eso
Y yo pondria un
if(variable<limite)
{
//Aqui aumentas la aceleracion
}
#include "bola.hpp"#define
Te pongo el codigo de mi clase, espero que se entienda esta dentro de todo ordenado.
- En la funcion Direccion es donde va la parte de la aceleracion, que esta funcionando pero al aumentarla me cambia la direccion de la bola... No se si esta bien.