PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Ver el tema anterior Ver el tema siguiente Ir abajo

PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por dato000 el Jue Jul 04, 2013 4:46 pm

pues estaba trabajando en ambas, tanto en pong como en el snake, y no he podido cuadrar lo que es la colision,

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

_________________


Así es, pura evolución
Para pasar el tiempo: [Tienes que estar registrado y conectado para ver este vínculo]
avatar
dato000
Admin

Mensajes : 161
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por amchacon el Vie Jul 05, 2013 12:27 pm

¿Pero eso es pong o snake? ¿Un poco de cada?

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]
avatar
amchacon
Admin

Mensajes : 171
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por dato000 el Vie Jul 05, 2013 1:27 pm

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

_________________


Así es, pura evolución
Para pasar el tiempo: [Tienes que estar registrado y conectado para ver este vínculo]
avatar
dato000
Admin

Mensajes : 161
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por amchacon el Vie Jul 05, 2013 1:59 pm

dato000 escribió:Lo del teclado si lo uso, para capturar los movimientos de las barras.
No hablo del teclado sino de la variable teclado

Y borrala, verás como te compila igual Very Happy 

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.
Pero vamos a ver, estás poniendo que si la pelota está arriba, que se vaya para abajo.

Para más contra, estas usando la misma variable para la pelota y la barra. Lo cual es una barbaridad.

dato000 escribió:DE verdad el pong es más dificil que el snake????  siempre pense lo contrario...
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ó:Voy a estudiar tu snake, muchas gracias
Tiene bastantes "cosillas" de por medio... Quizás te resulte más fácil mirarte la primera versión (es más sencilla).
avatar
amchacon
Admin

Mensajes : 171
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por dato000 el Vie Jul 05, 2013 5:42 pm

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?? cheers cheers cheers 

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!!


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??

_________________


Así es, pura evolución
Para pasar el tiempo: [Tienes que estar registrado y conectado para ver este vínculo]
avatar
dato000
Admin

Mensajes : 161
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por amchacon el Vie Jul 05, 2013 7:27 pm

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!!!
¿Ein? ¿Cual versión estabas usando? La última está ya bastante depurada.

Por cierto si hay un código fuente. Para cualquiera de la tres versiones (lo que pasa esque no miras Very Happy ). En la versión de Linux pusé un txt con el paquete que hay que instalar (además tienes que ponerle permisos de ejecutable).

dato000 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??
Igual que moviendo una barrita, solo que en vez de mover uno le dices que mueva las dos Very Happy 
avatar
amchacon
Admin

Mensajes : 171
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por dato000 el Vie Jul 05, 2013 8:42 pm

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 Very Happy ). 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 Very Happy 

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.










_________________


Así es, pura evolución
Para pasar el tiempo: [Tienes que estar registrado y conectado para ver este vínculo]
avatar
dato000
Admin

Mensajes : 161
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por amchacon el Vie Jul 05, 2013 10:12 pm

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
¿¿¿Ein???

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 Very Happy 

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.

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.









Bueno, la versión de Linux es una chapuza ^^

Ahora lo miraré, prueba a compilarlo aver Wink
avatar
amchacon
Admin

Mensajes : 171
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por dato000 el Sáb Jul 06, 2013 12:53 am

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.

_________________


Así es, pura evolución
Para pasar el tiempo: [Tienes que estar registrado y conectado para ver este vínculo]
avatar
dato000
Admin

Mensajes : 161
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por amchacon el Sáb Jul 06, 2013 8:37 am

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 

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.
Ahora me ha dado por cosas técnicas, no hace mucho he creado un resoluctor de sudokus:
[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]
avatar
amchacon
Admin

Mensajes : 171
Fecha de inscripción : 30/05/2013

Ver perfil de usuario

Volver arriba Ir abajo

Re: PONG: no consigo realizar correctamente la colision de la bolita (SOLUCIONADO)

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.