Problema con un code de Allegro

Iniciado por vojok, 23 Julio 2010, 01:59 AM

0 Miembros y 1 Visitante están viendo este tema.

vojok

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:


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.



cbug

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

vojok

Si no es molestia quiero que me expliquen este pedazo de codigo,osea que  funcion cumple cada linea de codigo:


     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.

cbug

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.

vojok

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.

cbug

Ni eso... para ser un programador necesariamente debes saber inglés...

vojok

Cita de: cbug en 24 Julio 2010, 14:47 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.

[L]ord [R]NA

Cita de: 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.

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

cbug

Cita de: vojok en 24 Julio 2010, 20:25 PM
Cita de: cbug en 24 Julio 2010, 14:47 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)...
Cita de: Lord R.N.A. en 24 Julio 2010, 20:57 PM
Cita de: 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.

-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 ;)

flony

en definitiva que hace ese pedazo de codigo.. :-\  ;)
si un problema no tiene solucion entonces no es un problema...es algo inevitable