PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
2 participantes
Página 1 de 1.
PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
pues estaba trabajando en ambas, tanto en pong como en el snake, y no he podido cuadrar lo que es la colision,
El problema es que cuando se realiza una colision de la bolita, colisiona, y cambia la direccion de la velocidad, pero al mismo tiempo cumple la condicion de la direccion inicial, asi que se queda "trabada" y no va a ningun lado, ahora, bien, utilice un while para la condicion general pero el movimiento de la pelota es tan rapido que siemplemente se queda pegada a alguna pared de la pantalla, creo que eso se arregla con ticks y eso, pero no entiendo muy bien esa parte, agradeceria muchisimo que me echaran una mano, porque pues, viendo que son tan parecidos el snake y el pong, pues entendiendo uno puedo sacar el otro.
Simplemente voy avanzando, si me echaran una mano puedo sacar resultadas mas rapido y mas eficaces.
- Spoiler:
- Código:
#ifdef __cplusplus
#include <cstdlib>
#else
#include <stdlib.h>
#endif
#ifdef __APPLE__
#include <SDL/SDL.h>
#else
#include <SDL.h>
#endif
#include <time.h>
#include <list>
using namespace std;
const int aceleracion = 1; // El movimiento de la serpiente
const int tam_x = 600;
const int tam_y = 400;
int Direccion = 0;
int Velocidad = 10;
int main ( int argc, char** argv )
{
SDL_Surface *pantalla; // Definimos una superficie
SDL_Event evento; // Definimos una variable de eventos
Uint8* Teclado; // Para capturar las teclas
SDL_Rect jugador1; // rectangulo 1
SDL_Rect jugador2; // rectangulo 2
SDL_Rect pelota; // rectangulo 3
list<SDL_Rect> cola;
// Posiciones iniciales
// Iniciando semilla para random
srand (time(NULL));
// Valores jugador1
jugador1.x = 50;
jugador1.y = 50;
jugador1.w = 20;
jugador1.h = 100;
// Valores jugador2
jugador2.x = 530;
jugador2.y = 50;
jugador2.w = 20;
jugador2.h = 100;
// Valores pelota
pelota.x = rand() % 200+200;
pelota.y = rand() % 100+100;
pelota.w = 30;
pelota.h = 30;
// Iniciamos SDL
if(SDL_Init(SDL_INIT_VIDEO))
{
// en caso de error
fprintf(stderr, "Error al inicalizar SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit); // Al salir, cierra SDL
// Establecemos el modo de pantalla
pantalla = SDL_SetVideoMode(tam_x, tam_y, 16, SDL_ANYFORMAT);
if(pantalla == NULL)
{
// Si no hemos podido incializar la superficie
fprintf(stderr, "Error al crear la superficie: %s\n", SDL_GetError());
exit(1);
}
// Personalizamos el titulo de la ventana
SDL_WM_SetCaption("Snake", NULL);
// Bucle infinito aqui se trabaja mientras no haya salida
bool salir = false;
while(!salir)
{
// Consultamos los eventos
while(SDL_PollEvent(&evento))
{
if(evento.type == SDL_QUIT) // Si es de salida
return 0;
else if(evento.key.keysym.sym == SDLK_ESCAPE) // Si se oprime escape para salida
return 0;
else if(evento.key.keysym.sym == SDLK_r) // Si se oprime escape para reiniciar
{
// Valores jugador1
jugador1.x = 50;
jugador1.y = 50;
jugador1.w = 20;
jugador1.h = 100;
// Valores jugador2
jugador2.x = 530;
jugador2.y = 50;
jugador2.w = 20;
jugador2.h = 100;
// Valores pelota
pelota.x = rand() % 200+200; // Rango entre posicion X -> 200 a 400
pelota.y = rand() % 100+100; // Rango entre posicion Y -> 100 a 200
pelota.w = 30;
pelota.h = 30;
Direccion = 6;
}
// Comprobando teclas de movimiento
else if(evento.key.keysym.sym == SDLK_w) // Si se oprime arriba
{
Direccion = 1;
}
else if(evento.key.keysym.sym == SDLK_s) // Si se oprime abajo
{
Direccion = 2;
}
else if(evento.key.keysym.sym == SDLK_UP) // Si se oprime derecha
{
Direccion = 3;
}
else if(evento.key.keysym.sym == SDLK_DOWN) // Si se oprime izquierda
{
Direccion = 4;
}
}
if( (pelota.y > 0) )
{
Direccion = 5;
}
else if(pelota.y < tam_y)
{
Direccion = 6;
}
if(Direccion == 5)
{
pelota.y += Velocidad;
//pelota.x += Velocidad;
}
if(Direccion == 6)
{
pelota.y -= Velocidad;
//pelota.x += Velocidad;
}
// Colisiones y direcciones
// Comprobando la direccion de cada cuadro y colision con pantalla
if(Direccion == 1)
{
if(jugador1.y > 0)
{
jugador1.y -= Velocidad;
}
}
if(Direccion == 2)
{
if((jugador1.y + jugador1.h) < tam_y)
{
jugador1.y += Velocidad;
}
}
if(Direccion == 3)
{
if(jugador2.y > 0 )
{
jugador2.y -= Velocidad;
}
}
if(Direccion == 4)
{
if(jugador2.y < tam_y - jugador2.h)
{
jugador2.y += Velocidad;
}
}
SDL_FillRect(pantalla, 0, SDL_MapRGB(pantalla->format, 0, 0, 0)); // pintando la pantalla
SDL_FillRect(pantalla, &jugador1, SDL_MapRGB(pantalla->format, 255, 255, 255)); // pintando el jugador1
SDL_FillRect(pantalla, &jugador2, SDL_MapRGB(pantalla->format, 255, 255, 255)); // pintando el jugador2
SDL_FillRect(pantalla, &pelota, SDL_MapRGB(pantalla->format, 255, 255, 255)); // pintando la pelota
SDL_Flip(pantalla);
SDL_Delay(30);
}
}
El problema es que cuando se realiza una colision de la bolita, colisiona, y cambia la direccion de la velocidad, pero al mismo tiempo cumple la condicion de la direccion inicial, asi que se queda "trabada" y no va a ningun lado, ahora, bien, utilice un while para la condicion general pero el movimiento de la pelota es tan rapido que siemplemente se queda pegada a alguna pared de la pantalla, creo que eso se arregla con ticks y eso, pero no entiendo muy bien esa parte, agradeceria muchisimo que me echaran una mano, porque pues, viendo que son tan parecidos el snake y el pong, pues entendiendo uno puedo sacar el otro.
Simplemente voy avanzando, si me echaran una mano puedo sacar resultadas mas rapido y mas eficaces.
Última edición por dato000 el Sáb Jul 06, 2013 12:54 am, editado 1 vez
dato000- Admin
- Mensajes : 161
Fecha de inscripción : 30/05/2013
Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
¿Pero eso es pong o snake? ¿Un poco de cada?
Lo primerito:
Esta variable no la usas en ningún momento.
¿Esto que es? ¿Para el snake? En el pong deberías quitarlo.
¿Eso quiere decir que siempre va hacia arriba? ¿Y por qué usas la misma variable que con la barrita?
Mi consejo esque dejes el pong y te lanzes directamente al Snake que es más sencillito. Aquí tienes un ejemplo en Allegro:
[Tienes que estar registrado y conectado para ver este vínculo]
Lo primerito:
Uint8* Teclado; // Para capturar las teclas
Esta variable no la usas en ningún momento.
list<SDL_Rect> cola;
¿Esto que es? ¿Para el snake? En el pong deberías quitarlo.
if( (pelota.y > 0) )
{
Direccion = 5;
}
¿Eso quiere decir que siempre va hacia arriba? ¿Y por qué usas la misma variable que con la barrita?
Mi consejo esque dejes el pong y te lanzes directamente al Snake que es más sencillito. Aquí tienes un ejemplo en Allegro:
[Tienes que estar registrado y conectado para ver este vínculo]
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
Estoy tratando de hacer ambas, asi me mantengo motivado y le meto empeño, pero simplemente me quede bloqueado con ese tipo de colisiiones, ya que la pelota va colisionando automaticamente con cada pared (y con cada bloque) pero no he podido descubrir la forma de realizarlo.
Tienes razon con lo de la cola, no habia caido en cuenta.
Lo del teclado si lo uso, para capturar los movimientos de las barras.
Y lo del direccion >= 0, pues es para intentar validar los movimientos de la pelota, dandole como una velocidad estandar cuando inicie el juego y la pelotita se vaya moviendo.
Mi problema es que no he podido hacer que la pelotita tome un movimiento inicial y vaya cambiando su direccion a medida que toque una pared, pues o se queda bloqueada o solo va en una direccion horizontal o vertical, o va para otro lado incorrecto.
Voy a estudiar tu snake, muchas gracias
DE verdad el pong es más dificil que el snake???? siempre pense lo contrario...
Tienes razon con lo de la cola, no habia caido en cuenta.
Lo del teclado si lo uso, para capturar los movimientos de las barras.
Y lo del direccion >= 0, pues es para intentar validar los movimientos de la pelota, dandole como una velocidad estandar cuando inicie el juego y la pelotita se vaya moviendo.
Mi problema es que no he podido hacer que la pelotita tome un movimiento inicial y vaya cambiando su direccion a medida que toque una pared, pues o se queda bloqueada o solo va en una direccion horizontal o vertical, o va para otro lado incorrecto.
Voy a estudiar tu snake, muchas gracias
DE verdad el pong es más dificil que el snake???? siempre pense lo contrario...
dato000- Admin
- Mensajes : 161
Fecha de inscripción : 30/05/2013
Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
No hablo del teclado sino de la variable tecladodato000 escribió:Lo del teclado si lo uso, para capturar los movimientos de las barras.
Y borrala, verás como te compila igual
![Very Happy](https://2img.net/i/fa/i/smiles/icon_biggrin.png)
Pero vamos a ver, estás poniendo que si la pelota está arriba, que se vaya para abajo.dato000 escribió:Y lo del direccion >= 0, pues es para intentar validar los movimientos de la pelota, dandole como una velocidad estandar cuando inicie el juego y la pelotita se vaya moviendo.
Para más contra, estas usando la misma variable para la pelota y la barra. Lo cual es una barbaridad.
Cuando una pelota golpea una pared, tienes que usar un poco de física para que te quede un movimiento "realista". En el Snake no hay física alguna (tampoco tienes que hacer una IA).dato000 escribió:DE verdad el pong es más dificil que el snake???? siempre pense lo contrario...
Tiene bastantes "cosillas" de por medio... Quizás te resulte más fácil mirarte la primera versión (es más sencilla).dato000 escribió:Voy a estudiar tu snake, muchas gracias
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
no encontre fuente, y no pude correrlo en linux, y además en el de windows se cerraba debido a x razones, y además viejo, cuando la serpiente se come una manzana no se mueve su cola, sino que crece desmesuradamente hasta que pues se termine el juego.
Ummmmm vale voy a seguir intentando, tu juego esta genial, se nota el empeño, muy pero muy pero muy bueno!!!
-----------------------------------
EDITADO:
Lo he conseguido!! ahora que lo pienso era más que obvio!! tenia era que modificar los valores de la velocidad, no de la dirección, para que simplemente cuando llega a una pared, la posicion de la pelota toma el valor que suma a la velocidad, y su direccion es simplemente determinada si la velocidad es positiva o negativa, es decir, multiplicar por 1!!! jajaja pequeña victoria el entender esto!! jajaj diran que es patetico o tonto, pero realmente entender una cosa asi solito es algo bueno no??
Seguire con el pong sencillo, luego me meto con mapas de bits, aunque no me gusta trabajar con bmp, voy a trabajar con png, ya pude cargar una imagen con SDL jajejejeajejej pero antes, termino el snake, el pong y luego a trabajar en un tetris!!
![PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO) 91ad8d929c0d9e99e2b6afb332f4e6feo](https://2img.net/h/fotos.subefotos.com/91ad8d929c0d9e99e2b6afb332f4e6feo.png)
Se que no se nota el movimiento, pero se mueve ohhhh yeah!!!
Hey Am, tenias toda la razon, manejar eventos salio más sencillo y es independiente a manejar a la variable que tenia de teclado, muy bueno muy bueno, es que no entendia esa tematica.
Creo que en un futuro voy a dejar un tuto por aqui de como hacer los tres juegos basicos, como el pong, el snake, y el tetris. Me dan ganas de sacar videotutoriales siguiendo el ejemplo de mi maestro Paueky, pero realmente no me siento que se taaaaaanto como ese ilustrado personaje.
Hey hablando de juegos básicos, a modo de reto, que más juegos consideran básicos en el aprendizaje?? Obvio, esos tres juegos puede evolucionarse, como hizo An, que le quedo su serpiente genial. Allegro tiene muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuucho de donde coger tambien, lo estoy leyendo poco a poco tambien.
slds
---------------------
Ahora tengo que averiguar como manejar los eventos del teclado, alguien sabe como hacer que se muevan las dos barritas?? que se muevan simultaneamente??
Ummmmm vale voy a seguir intentando, tu juego esta genial, se nota el empeño, muy pero muy pero muy bueno!!!
-----------------------------------
EDITADO:
Lo he conseguido!! ahora que lo pienso era más que obvio!! tenia era que modificar los valores de la velocidad, no de la dirección, para que simplemente cuando llega a una pared, la posicion de la pelota toma el valor que suma a la velocidad, y su direccion es simplemente determinada si la velocidad es positiva o negativa, es decir, multiplicar por 1!!! jajaja pequeña victoria el entender esto!! jajaj diran que es patetico o tonto, pero realmente entender una cosa asi solito es algo bueno no??
![cheers](https://2img.net/i/fa/i/smiles/icon_cheers.png)
![cheers](https://2img.net/i/fa/i/smiles/icon_cheers.png)
![cheers](https://2img.net/i/fa/i/smiles/icon_cheers.png)
Seguire con el pong sencillo, luego me meto con mapas de bits, aunque no me gusta trabajar con bmp, voy a trabajar con png, ya pude cargar una imagen con SDL jajejejeajejej pero antes, termino el snake, el pong y luego a trabajar en un tetris!!
![PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO) 91ad8d929c0d9e99e2b6afb332f4e6feo](https://2img.net/h/fotos.subefotos.com/91ad8d929c0d9e99e2b6afb332f4e6feo.png)
Se que no se nota el movimiento, pero se mueve ohhhh yeah!!!
Hey Am, tenias toda la razon, manejar eventos salio más sencillo y es independiente a manejar a la variable que tenia de teclado, muy bueno muy bueno, es que no entendia esa tematica.
- Spoiler:
- Código:
#ifdef __cplusplus
#include <cstdlib>
#else
#include <stdlib.h>
#endif
#ifdef __APPLE__
#include <SDL/SDL.h>
#else
#include <SDL.h>
#endif
#include <time.h>
#include <list>
using namespace std;
const int aceleracion = 1; // El movimiento de la serpiente
const int tam_x = 600;
const int tam_y = 400;
int Direccion = 0;
int Velocidad = 10;
int VelocidadY = 10;
int VelocidadX = 10;
int main ( int argc, char** argv )
{
SDL_Surface *pantalla; // Definimos una superficie
SDL_Event evento; // Definimos una variable de eventos
SDL_Rect jugador1; // rectangulo 1
SDL_Rect jugador2; // rectangulo 2
SDL_Rect pelota; // rectangulo 3
// Posiciones iniciales
// Iniciando semilla para random
srand (time(NULL));
// Valores jugador1
jugador1.x = 60;
jugador1.y = 60;
jugador1.w = 20;
jugador1.h = 100;
// Valores jugador2
jugador2.x = 520;
jugador2.y = 60;
jugador2.w = 20;
jugador2.h = 100;
// Valores pelota
pelota.x = rand() % 200+200;
pelota.y = rand() % 100+100;
pelota.w = 40;
pelota.h = 40;
// Iniciamos SDL
if(SDL_Init(SDL_INIT_VIDEO))
{
// en caso de error
fprintf(stderr, "Error al inicalizar SDL: %s\n", SDL_GetError());
exit(1);
}
atexit(SDL_Quit); // Al salir, cierra SDL
// Establecemos el modo de pantalla
pantalla = SDL_SetVideoMode(tam_x, tam_y, 16, SDL_ANYFORMAT);
if(pantalla == NULL)
{
// Si no hemos podido incializar la superficie
fprintf(stderr, "Error al crear la superficie: %s\n", SDL_GetError());
exit(1);
}
// Personalizamos el titulo de la ventana
SDL_WM_SetCaption("Snake", NULL);
// Bucle infinito aqui se trabaja mientras no haya salida
bool salir = false;
while(!salir)
{
// Consultamos los eventos
while(SDL_PollEvent(&evento))
{
if(evento.type == SDL_QUIT) // Si es de salida
return 0;
else if(evento.key.keysym.sym == SDLK_ESCAPE) // Si se oprime escape para salida
return 0;
else if(evento.key.keysym.sym == SDLK_r) // Si se oprime escape para reiniciar
{
// Valores jugador1
jugador1.x = 60;
jugador1.y = 60;
jugador1.w = 20;
jugador1.h = 100;
// Valores jugador2
jugador2.x = 530;
jugador2.y = 50;
jugador2.w = 20;
jugador2.h = 100;
// Valores pelota
pelota.x = rand() % 200+200; // Rango entre posicion X -> 200 a 400
pelota.y = rand() % 100+100; // Rango entre posicion Y -> 100 a 200
pelota.w = 30;
pelota.h = 30;
}
// Comprobando teclas de movimiento
else if(evento.key.keysym.sym == SDLK_w) // Si se oprime arriba
{
Direccion = 1;
}
else if(evento.key.keysym.sym == SDLK_s) // Si se oprime abajo
{
Direccion = 2;
}
else if(evento.key.keysym.sym == SDLK_UP) // Si se oprime derecha
{
Direccion = 3;
}
else if(evento.key.keysym.sym == SDLK_DOWN) // Si se oprime izquierda
{
Direccion = 4;
}
}
pelota.y += VelocidadY;
pelota.x += VelocidadX;
if( pelota.y < 10 )
{
VelocidadY = 10;
}
if((pelota.y + pelota.h + VelocidadY) >= tam_y)
{
VelocidadY = -10;
}
if( pelota.x <= 10 )
{
VelocidadX = 10;
}
if((pelota.x + pelota.w + VelocidadX) > tam_x)
{
VelocidadX = -10;
}
// Colisiones y direcciones
// Comprobando la direccion de cada cuadro y colision con pantalla
if(Direccion == 1)
{
if(jugador1.y > 0)
{
jugador1.y -= Velocidad;
}
}
if(Direccion == 2)
{
if((jugador1.y + jugador1.h) < tam_y)
{
jugador1.y += Velocidad;
}
}
if(Direccion == 3)
{
if(jugador2.y > 0 )
{
jugador2.y -= Velocidad;
}
}
if(Direccion == 4)
{
if(jugador2.y < tam_y - jugador2.h)
{
jugador2.y += Velocidad;
}
}
SDL_FillRect(pantalla, 0, SDL_MapRGB(pantalla->format, 0, 0, 0)); // pintando la pantalla
SDL_FillRect(pantalla, &jugador1, SDL_MapRGB(pantalla->format, 255, 255, 255)); // pintando el jugador1
SDL_FillRect(pantalla, &jugador2, SDL_MapRGB(pantalla->format, 255, 255, 255)); // pintando el jugador2
SDL_FillRect(pantalla, &pelota, SDL_MapRGB(pantalla->format, 255, 255, 255)); // pintando la pelota
SDL_Flip(pantalla);
SDL_Delay(30);
}
}
Creo que en un futuro voy a dejar un tuto por aqui de como hacer los tres juegos basicos, como el pong, el snake, y el tetris. Me dan ganas de sacar videotutoriales siguiendo el ejemplo de mi maestro Paueky, pero realmente no me siento que se taaaaaanto como ese ilustrado personaje.
Hey hablando de juegos básicos, a modo de reto, que más juegos consideran básicos en el aprendizaje?? Obvio, esos tres juegos puede evolucionarse, como hizo An, que le quedo su serpiente genial. Allegro tiene muuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuucho de donde coger tambien, lo estoy leyendo poco a poco tambien.
slds
---------------------
Ahora tengo que averiguar como manejar los eventos del teclado, alguien sabe como hacer que se muevan las dos barritas?? que se muevan simultaneamente??
dato000- Admin
- Mensajes : 161
Fecha de inscripción : 30/05/2013
Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
¿Ein? ¿Cual versión estabas usando? La última está ya bastante depurada.dato000 escribió:no encontre fuente, y no pude correrlo en linux, y además en el de windows se cerraba debido a x razones, y además viejo, cuando la serpiente se come una manzana no se mueve su cola, sino que crece desmesuradamente hasta que pues se termine el juego.
Ummmmm vale voy a seguir intentando, tu juego esta genial, se nota el empeño, muy pero muy pero muy bueno!!!
Por cierto si hay un código fuente. Para cualquiera de la tres versiones (lo que pasa esque no miras
![Very Happy](https://2img.net/i/fa/i/smiles/icon_biggrin.png)
Igual que moviendo una barrita, solo que en vez de mover uno le dices que mueva las dosdato000 escribió:Ahora tengo que averiguar como manejar los eventos del teclado, alguien sabe como hacer que se muevan las dos barritas?? que se muevan simultaneamente??
![Very Happy](https://2img.net/i/fa/i/smiles/icon_biggrin.png)
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
amchacon escribió:
¿Ein? ¿Cual versión estabas usando? La última está ya bastante depurada.
amchacon escribió:
Por cierto si hay un código fuente. Para cualquiera de la tres versiones (lo que pasa esque no miras). En la versión de Linux pusé un txt con el paquete que hay que instalar (además tienes que ponerle permisos de ejecutable).
Con el link que dejaste amigo mio
[Tienes que estar registrado y conectado para ver este vínculo]
Descargar La Serpiente v20130510 WIN(Sólo Usuarios Registrados).
Descargar La Serpiente v20130513 LINUX(Sólo Usuarios Registrados).
Descargar La Serpiente v20130510 SRC(Sólo Usuarios Registrados). ---> Tenias razón no me di cuenta, pensaba que decia mac
En windows trabaja bien, pero en cualquier momento se puede cerrar, aun asi vi lo de la cola que se estiraba por todo el tablero.
amchacon escribió:
Igual que moviendo una barrita, solo que en vez de mover uno le dices que mueva las dos![]()
No, creo que no me entendiste, quiero mover una barra arriba abajo sin que interrumpa el movimiento de la 2da barra, ya que al solo estar pendiente de solo un evento al estar moviendose una barra la otra deja de moverse, y si las dos se mueven con un solo evento, pues ya no seria un juego de dos jugadores.
En fin eso lo veo luego, estoy matando el tiempo que estoy un poco mareado de tanto sdl e illustrator
---------------
En cuanto a linux, mira, ya tenia instalado el allegro desde hace muchhhooooooo
esto es lo que pasa corriendo en linux, al menos tu lo sabes compilar en un ejecutable para linux, yo todavia no logro hacerlo.
[Tienes que estar registrado y conectado para ver este vínculo]
dato000- Admin
- Mensajes : 161
Fecha de inscripción : 30/05/2013
Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
¿¿¿Ein???dato000 escribió:En windows trabaja bien, pero en cualquier momento se puede cerrar, aun asi vi lo de la cola que se estiraba por todo el tablero.
No me ha pasado ese bug en la vida, descríbeme paso a paso lo que has hecho *_*.
dato000 escribió:amchacon escribió:
Igual que moviendo una barrita, solo que en vez de mover uno le dices que mueva las dos![]()
No, creo que no me entendiste, quiero mover una barra arriba abajo sin que interrumpa el movimiento de la 2da barra, ya que al solo estar pendiente de solo un evento al estar moviendose una barra la otra deja de moverse, y si las dos se mueven con un solo evento, pues ya no seria un juego de dos jugadores.
Es lo mismo, controla los eventos como lo haces ahora mismo. Si alguien pulsa W mueves el jugador de la izquierda, si alguien pulsa ARRIBA mueves el de la derecha.
Bueno, la versión de Linux es una chapuza ^^dato000 escribió:
En cuanto a linux, mira, ya tenia instalado el allegro desde hace muchhhooooooo
esto es lo que pasa corriendo en linux, al menos tu lo sabes compilar en un ejecutable para linux, yo todavia no logro hacerlo.
[Tienes que estar registrado y conectado para ver este vínculo]
Ahora lo miraré, prueba a compilarlo aver
![Wink](https://2img.net/i/fa/i/smiles/icon_wink.gif)
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
Ya casi saco el pong!!! ya solo me falta la colision de la pelota con las barras!!!! ya paso lo dificil creo, lo demás seria añadir un score y decir cuando se anota y esas cosas, ahhhh me siento bien, que en un dia de trabajo sienta que haya avanzado.
Hey mira que raro, baje nuevamente el archivo para windows, y ahora corrio sin problemas, tanto fullscreen como en ventana, que raro, pero mejor!! dejame felicitarte que trabajo tan colosal!!!!!!!! muy pero muy bueno!!! la musica, los mapas muy bueno, aunque podrias haber puesto paredes diferentes al cuerpo de la serpiente...y un campo no?? pero lo que has hecho es simplemente sensacional.
El editor niveles, que decias, whoooooooooooooooooooooooooooooooooooooooooooaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!!!!!!!
aun estoy a años luz de ese nivel, no estas trabajando en algo ahora??? preparado para programar en ogre o unity3D? vas a hacer android??? muy pero muy buen trabajo.
Hey mira que raro, baje nuevamente el archivo para windows, y ahora corrio sin problemas, tanto fullscreen como en ventana, que raro, pero mejor!! dejame felicitarte que trabajo tan colosal!!!!!!!! muy pero muy bueno!!! la musica, los mapas muy bueno, aunque podrias haber puesto paredes diferentes al cuerpo de la serpiente...y un campo no?? pero lo que has hecho es simplemente sensacional.
El editor niveles, que decias, whoooooooooooooooooooooooooooooooooooooooooooaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!!!!!!!
aun estoy a años luz de ese nivel, no estas trabajando en algo ahora??? preparado para programar en ogre o unity3D? vas a hacer android??? muy pero muy buen trabajo.
dato000- Admin
- Mensajes : 161
Fecha de inscripción : 30/05/2013
Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)
^^dato000 escribió:Ya casi saco el pong!!! ya solo me falta la colision de la pelota con las barras!!!! ya paso lo dificil creo, lo demás seria añadir un score y decir cuando se anota y esas cosas, ahhhh me siento bien, que en un dia de trabajo sienta que haya avanzado.
Al ser dos rectángulos, te puedes copiar de mi función "colisión" en el minijuego 4.
^^ ^^ ^^ ^^dato000 escribió:Hey mira que raro, baje nuevamente el archivo para windows, y ahora corrio sin problemas, tanto fullscreen como en ventana, que raro, pero mejor!! dejame felicitarte que trabajo tan colosal!!!!!!!! muy pero muy bueno!!! la musica, los mapas muy bueno, aunque podrias haber puesto paredes diferentes al cuerpo de la serpiente...y un campo no?? pero lo que has hecho es simplemente sensacional.
El color de las paredes/serpiente se puede cambiar en opciones.
^^dato000 escribió:El editor niveles, que decias, whoooooooooooooooooooooooooooooooooooooooooooaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh!!!!!!!
Se puede manejar con el ratón también
![Very Happy](https://2img.net/i/fa/i/smiles/icon_biggrin.png)
Ahora me ha dado por cosas técnicas, no hace mucho he creado un resoluctor de sudokus:dato000 escribió:aun estoy a años luz de ese nivel, no estas trabajando en algo ahora??? preparado para programar en ogre o unity3D? vas a hacer android??? muy pero muy buen trabajo.
[Tienes que estar registrado y conectado para ver este vínculo]
Y ahora estoy haciendo una calculadora parser, es decir, una calculadora a la que le introduces una expresión:
2+3*cos(pi) - 3 /(2+1)
Realiza lo siguiente:
- Sustituye pi por 3.1416.
- Realiza el coseno.
- Realiza el paréntesis.
- Identifica el resto de operaciones por orden de prioridad aritmetica (primero la multriplicación y división y despues la suma y resta).
De momento funciona bien, aunque hay cosillas que tengo que depurar:
[Tienes que estar registrado y conectado para ver este vínculo]
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Contenido patrocinado
![-](https://2img.net/i/empty.gif)
» PONG: ya casi!!! me ayudan a darle estilo???
» Mi juego para el reto: PONG --Estado: ALPHA n00b!!!--
» Mi juego para el reto: PONG --Estado: ALPHA n00b!!!--
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|