LibAnim
La lib est basé sur une structure: les "objets"
typedef struct objet objet;
struct objet{
coords* c; //structure de coordonnées de l'objet + taille des sprites
char nb; //taille du tableau de séquences (voir après)
char locked; //vous indique si une animation n'a pas été entierement exécutée
char current; //id de la séquence en cours
char n; //id du bitmap dans la sequence en cours
seq* *s; //tableau de séquences (voir ci dessous)
};
Un objets contient un tableau de pointeurs de seq (séquences):
Une séquence représente en fait une animation possible de l'objet (notez que la seq à l'index 0 du tableau est exécuté par défaut).
struct seq{
char n; //nombre de bitmaps dans la séquence
char isTemp; //savoir si l'animation est exécutable une fois ou en boucle
char* id; //nom de la séquence
unsigned char* *bitmap; //tableau de pointeurs de bitmaps
};
Fonctions:
Je vous présenterais les fonctions d'initialisation apres.
LibAnim a pour objectif de proposer le minimum de fonctions pour en faciliter l'utilisation.
drawCurrent et updateCurrent sont deux fonctions à appeler l'une après l'autre. L'une affiche l'animation et l'autre l'actualise.
triggerAnim est LA fonction de la lib.
Elle déclenche une animation chez un objet
char triggerAnim(objet* o, char* id, char priority);
id est le nom de la séquence (ex: "walk")
Priority n'est pas utilisé pour le moment.
Fonctions d'initialisation
//renvoie un pointeur vers le seq créé. les arguments correspondent aux attributs de la structure. Ne pas oublier de libérer toutes les seq créées
seq* initSeq(char n, char isTemp, char* id, unsigned char* *bitmap);
//renvoie un pointeur vers l'objet créé. les arguments correspondent aux attributs de la structure. Ne pas oublier de libérer tous les objets créés
objet* initObjet(seq* *s, char nb, char x, char y, char sizeX, char sizeY);
Fonctions de libération:
//Pour libérer une séquence
seq* freeSeq(seq* s);
//Libère un objet
objet* freeObjet(objet* o);
//Libère un objèt + toutes les séquences qu'il contient (Ne pas utiliser si vous utilisez les memes séquences pour plusieurs objets)
objet* freeObjetR(objet* o);
Citer : Posté le 02/03/2012 17:44 | #
Gestion de la caméra ?
c'est à dire ?
Citer : Posté le 02/03/2012 17:57 | #
Ben tu ajoutes une caméra pour afficher l'objet par rapport à la caméra plutôt que par rapport à l'écran (ça permet par exemple de gérer des niveaux plus grands que l'écran ou autres...). Avant, l'objet était uniquement affiché par rapport à l'écran, ce qui n'est pas pratique pour les jeux qui justement utilisent une caméra (exemples: orton, dead labs...)
Calculatrice: Graph 35+ (modifiée 75) + graph 75
Dead Labs est sorti ! N'hésitez pas à l'essayer et à voter !!!
Citer : Posté le 02/03/2012 18:00 | #
ok, du scrolling, c'est ça ? Je pensais que tu parlais de camera 3d (isométrique)
Citer : Posté le 02/03/2012 18:44 | #
Ah non
Je parle bien de scrolling
Calculatrice: Graph 35+ (modifiée 75) + graph 75
Dead Labs est sorti ! N'hésitez pas à l'essayer et à voter !!!
Citer : Posté le 02/03/2012 18:52 | #
à quand une lib pour la 3D?sinon epic gg Adbook
ça va être vachment utile pour *chut*
Citer : Posté le 27/12/2014 17:11 | #
Je n'arrive pas a compiler ta libraire sous le SDK de casio.
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".
Citer : Posté le 28/12/2014 03:05 | #
Précise où ça plante ? C'est le premier projet que tu compiles ?
Escape prison
Bloxorz
Free wheel
QR code
Nombre en or
RayCasting Engine
Mario Party
Zelda
et Planète Casio
Citer : Posté le 29/12/2014 16:04 | #
Voila l'erreur de compil:
** L2310 (E) Undefined external symbol "_initSeq" referenced in "C:\******_Street Fighter1.00\Debug\StreetF.obj"
- Kirby's DreamLand : Gobe , Gobe , Gobe !!!
- L'invasion Seanchans : Détruit la flotte ennemis a bord du "Danseur des vagues".