Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: vojok en 23 Julio 2010, 01:59 am



Título: Problema con un code de Allegro
Publicado por: vojok en 23 Julio 2010, 01:59 am
Hola ,me esoy iniciando en la programacion con videojuegos con la libreria Allegro sigo el manual de Daniel Acuña y algunas cosas no estan bien explicadas y queria saber si me podrian ayudar en este codigo que en el manual no me explica bien el code es este:

Código:
void realizar_juego()
{
     BITMAP *nave;
     BITMAP *buffer;
     int x,y, x_anterior,y_anterior;
     
     nave=load_bitmap("C:/nave.bmp",0);
     if(nave==NULL)terminar();
     
     draw_sprite(screen,nave,80,150 );
     
     buffer=create_bitmap(nave->w,nave->h);
     clear(buffer);
     if(buffer==NULL)terminar();
     
     x=SCREEN_W/2;       //no se que hace este codigo
     y=SCREEN_H/2;        //no se que hace este codigo
     
     
    while(!key[KEY_ESC])
{
   
    if(key[KEY_UP])
    {
        y--;
    }
   
    if(key[KEY_DOWN])
    {
        y++;
    }
   
    if(key[KEY_RIGHT])
    {
        x++;
    }
   
    if(key[KEY_LEFT])
    {
        x--;
    }

/*Y aca viene el mayor problema no se bien que sucede aca si alguien me podria explicar bien que hace cada linea de codigo me salvan la vida.*/
   
    if(x<0) x=x_anterior;
    if(x>SCREEN_W-nave->w) x=x_anterior;
    if(y<0)y=y_anterior;
    if(y>SCREEN_H-nave->h) y=y_anterior;
    if ((x_anterior !=x) || (y_anterior!=y))
    {
       blit(buffer,screen,0,0,x_anterior,y_anterior,buffer->w,buffer->h);
       blit(screen,buffer,x,y,0,0,buffer->,buffer->h);
       draw_sprite(screen,nave,x,y);
    }
    x_anterior=x;
    y_anterior=y;
}

Si alguien me podria ayudar en esto se lo agradeceria muchisimo, y otra cosita si es que no se molestas es como hago para que cuando muevo al sprite no parpade la imagen? osea que se mueva fuido?

Saludos.




Título: Re: Problema con un code de Allegro
Publicado por: cbug en 23 Julio 2010, 03:24 am
Quieres que se te explique línea por línea? O qué cosa?

PD: No te recomiendo allegro para nada... Comienza con sdl:

http://gpwiki.org/index.php/C:SDL_tutorials
http://www.libsdl.org/cgi/docwiki.cgi


Título: Re: Problema con un code de Allegro
Publicado por: vojok en 23 Julio 2010, 05:27 am
Si no es molestia quiero que me expliquen este pedazo de codigo,osea que  funcion cumple cada linea de codigo:
Código:
 
     x=SCREEN_W/2;       //no se que hace este codigo
     y=SCREEN_H/2;        //no se que hace este codigo

if(x<0) x=x_anterior;
    if(x>SCREEN_W-nave->w) x=x_anterior;
    if(y<0)y=y_anterior;
    if(y>SCREEN_H-nave->h) y=y_anterior;
    if ((x_anterior !=x) || (y_anterior!=y))
    {
       blit(buffer,screen,0,0,x_anterior,y_anterior,buffer->w,buffer->h);
       blit(screen,buffer,x,y,0,0,buffer->,buffer->h);
       draw_sprite(screen,nave,x,y);
    }
    x_anterior=x;
    y_anterior=y;
}



Se que muchos prefieren SDL xq hay mas info y es mas amplio ,pero lei unos tutos de SDL y explicaban muchisimas funciones que no utilizaba (para crear el tipico juego de shooter) y cuando tenia que explicar las funciones para crear el juego no la explicaba o lo explicaba mal ,y me canso xq me memorize todas las funciones al pedo xq no me sirvieron para nada ,entonces lo deje y me meti a Allegro y la verdad me resulta mucho mas facil que SDL,y como lo que yo quiero hacer no es mucho osea quiero crear un juego rpg y que un sprite pueda recoger del piso cosas y se le guarde en una muchila y despues arrojarcelo a otra persona y te de experiencia y subas de lvl entre otras cosas (poner una tienda para comprar espadas) no es mucho Creo yo ,x eso elegi a Allegro.

Saludos.


Título: Re: Problema con un code de Allegro
Publicado por: cbug en 23 Julio 2010, 15:33 pm
Que mejor que consultar:

http://alleg.sourceforge.net/api.html

Nunca he utilizado allegro, pero no es muy difícil de comprender teniendo la documentación a mano, si sabes C/C++ no será muy difícil de entenderlolo, ya que se utilizan estructuras muy sencillas, y funciones con parámetros más que comprensibles.


Título: Re: Problema con un code de Allegro
Publicado por: vojok en 24 Julio 2010, 05:15 am
te agradezco que me contestes ,pero la verdad no caso una de ingles muchos diran para ser un muy buen programador hay que saber ingles ,bueno yo no quiero ser un muy buen programador solo un programador XD,pero igual te agradezco que me hayas contestado.

Saludos.


Título: Re: Problema con un code de Allegro
Publicado por: cbug en 24 Julio 2010, 14:47 pm
Ni eso... para ser un programador necesariamente debes saber inglés...


Título: Re: Problema con un code de Allegro
Publicado por: vojok en 24 Julio 2010, 20:25 pm
Ni eso... para ser un programador necesariamente debes saber inglés...

Bueno ahi te equivocas muy feo , xq tengo a mi hermano,y un amigo que son muy buenos programador saben(vb,C,C++,sql,ensamblador,java) aproximadamente xq mi amigo conoce otros lenguajes, y de ingles no casan una hay que darle gracias si saben contar hasta 20 en ingles ,asiq con los ejemplos que tengo conocidos y familiares ,veo que no hay que saber ingles full  para ser un programador ,y antes que digan entonces xq no le preguntas a ellos , es xq estan cargados de laburo y no me dan ni bola en el msn ,pero igual ya me postie en otro foro y me respondieron asiq si quieren pueden cerrar el tema.

Saludos.


Título: Re: Problema con un code de Allegro
Publicado por: [L]ord [R]NA en 24 Julio 2010, 20:57 pm
te agradezco que me contestes ,pero la verdad no caso una de ingles muchos diran para ser un muy buen programador hay que saber ingles ,bueno yo no quiero ser un muy buen programador solo un programador XD,pero igual te agradezco que me hayas contestado.

Saludos.

-1, las actitudes conformistas sin ambiciones de ser mejor simplemente deploran al ser humano.


Título: Re: Problema con un code de Allegro
Publicado por: cbug en 24 Julio 2010, 22:26 pm
Ni eso... para ser un programador necesariamente debes saber inglés...

Bueno ahi te equivocas muy feo , xq tengo a mi hermano,y un amigo que son muy buenos programador saben(vb,C,C++,sql,ensamblador,java) aproximadamente xq mi amigo conoce otros lenguajes, y de ingles no casan una hay que darle gracias si saben contar hasta 20 en ingles ,asiq con los ejemplos que tengo conocidos y familiares ,veo que no hay que saber ingles full  para ser un programador ,y antes que digan entonces xq no le preguntas a ellos , es xq estan cargados de laburo y no me dan ni bola en el msn ,pero igual ya me postie en otro foro y me respondieron asiq si quieren pueden cerrar el tema.

Saludos.

Ok preguntale a tus hermanos (lamento ser tan... directo)...
te agradezco que me contestes ,pero la verdad no caso una de ingles muchos diran para ser un muy buen programador hay que saber ingles ,bueno yo no quiero ser un muy buen programador solo un programador XD,pero igual te agradezco que me hayas contestado.

Saludos.

-1, las actitudes conformistas sin ambiciones de ser mejor simplemente deploran al ser humano.

+1.

Aqui uno de los mejores programadores que conozco es Eternal Idol bajo Windows y Vertex.Symphony bajo unix/bsd... preguntales a ellos que estan cargados de laburo y tiempo, que podrán responderte si es necesario el inglés ;)


Título: Re: Problema con un code de Allegro
Publicado por: flony en 25 Julio 2010, 03:12 am
en definitiva que hace ese pedazo de codigo.. :-\  ;)


Título: Re: Problema con un code de Allegro
Publicado por: vojok en 25 Julio 2010, 18:55 pm
Citar
-1, las actitudes conformistas sin ambiciones de ser mejor simplemente deploran al ser humano.

jajaj eso sera para la gente que se quiere dedicar a la programacion ,pero yo solo es un joby yo me dedico a otra cosa ,esto de aprender programacion y creacion de juegos es para pasar el rato en los momentos libres,ademas si recien empesas no podes tener una ambicion de crear un sistema operativo xq dudo que llegues a hacerlo, los logros tienen que ser sencillos y una vez que lo hagas automaticamente te va a venir a la cabeza otra cosa mas complicada para hacer,es asi de simple.

en definitiva que hace ese pedazo de codigo.. :-\  ;)

Este pedazo de codigo hace que una nave o objeto se mueva en la pantalla con las flechitas del teclado.

Saludos.