Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: billyberjas en 11 de Marzo de 2003, 10:52:10 PM

Título: ¿Cómo montarse un sprite?
Publicado por: billyberjas en 11 de Marzo de 2003, 10:52:10 PM
                                Hola, un saludo a todos los que integran el foro.


A ver si alguno me podeís ayudar: Estoy intentando buscar la manera de implementar un "motor" de sprites en C ( C puro ;) ) y el problema es que no sé muy bien que problemas me voy a encontrar si hago lo siguiente:

Un struct sprite que contenga
{
x,y
un array de infosprites
speed
visible...

}

en el array infosprites

struct infosprite
{
Un array de bitmaps (para los distintos frames)
pos_frame_Actual
max_frames
looping?...
}


En fin, montarlo así, ¿Qué os parece? , ¿Bien?¿Mal?¿Regular?....



Otra duda que tengo es acerca del bitmap en sí: Imaginaos que tengo una secuencia señor andando, y otra secuencia en la que ese señor pega un salto.

Obviamente, en la secuencia del salto, la coordenada Y del sprite va a subir, es decir, que se eleva. Éso sería mejor dejarlo tal y como está (yo no controlaría entonces los valores de la Y de mi sprite) o hacer todos los sprites en el suelo (los frames saltando están lo más apoyados posible del suelo) y subir las Y's en el programa....


Bueno, ahora que lo pienso, imagino que habrá que hacerlo a manina con el pograma.


Bueno, si alguien me puede ayudar con los sprites.... :)                                
Título: ¿Cómo montarse un sprite?
Publicado por: Lord Trancos en 11 de Marzo de 2003, 11:30:49 PM
                                No esta mal...

yo quitaria el "un array de infosprites" de la primera estructura y SOLO meteria un numero para identificar el "infosprite" usado para dibujar el sprite. (podria valer perfectamente un puntero a ese "infosprite")

EDIT: ah, y el frame_actual lo pondria en el "sprite", y no en el "infosprite"                                
Título: ¿Cómo montarse un sprite?
Publicado por: sés en 12 de Marzo de 2003, 10:29:00 AM
                                Yo haría algo como:



struct t_sprite {

int x, y;    // evidente

int ani_act;   // animación actual

int frame_act;     // fotograma dentro de esa animación



struct t_anim *anim; // array de animaciones



struct *images;   // array con TODAS las imagenes de este sprite

};



struct t_anim {

int num_frames;   // num. de fotogramas

struct t_frame *frame; // array de fotogramas

}



struct t_frame {

int dx, dy;  // desplazamiento respecto al anterior

int num_img; // nº de imagen

int time;  // tiempo del fotograma

int flags;  // modificadores de pintado (inversión horizontal, vertical...)



// más datos que necesites

}




Es más o menos la estructura que uso yo (más bien menos), no la recuero ahora exactamente. Espero que te sirva.                                
Título: ¿Cómo montarse un sprite?
Publicado por: billyberjas en 12 de Marzo de 2003, 06:17:25 PM
                                Gracias a los dos por contestar,  me pondré a ello esta noche.  

¿Sabeís de algun sitio con sprites chulos y gratis?, ya tengo la Sprite_Lib, pero me gustaría trastear con alguna más.... No para uso comercial, sino por simple y puro aprendizaje. Me he dado cuenta de que me meto en temas demasiado complicados sin haber comprendido del todo los temas más sencillos. Por eso mi idea es hacer un sencillo juego de plataformas y aprender al máximo.

Un saludo                                
Título: ¿Cómo montarse un sprite?
Publicado por: AK47 en 14 de Marzo de 2003, 06:41:32 PM
                                Saludos
Lo del señor saltando, yo lo haria con la misma Y para todos los frames. Asi sera el programa quien se encargue de gestionar la Y del sprite y todas esas cosas

Ta luego ;)                                
Título: ¿Cómo montarse un sprite?
Publicado por: billyberjas en 14 de Marzo de 2003, 06:43:25 PM
                                yep, es lo que voy a hacer (estoy haciendo ) XD

thx