Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





¿Cómo montarse un sprite?

Iniciado por billyberjas, 11 de Marzo de 2003, 10:52:10 PM

« anterior - próximo »

billyberjas

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

Lord Trancos

                                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"                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

sés

                                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.                                
Soy indeciso... ¿o no?

billyberjas

                                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                                

AK47

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

billyberjas

                                yep, es lo que voy a hacer (estoy haciendo ) XD

thx                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.