MLV_animation.h(3) | Library Functions Manual | MLV_animation.h(3) |
MLV_animation.h - Ce fichier définit les prototypes des fonctions permettant de mettre en oeuvre des animations.
typedef struct _MLV_Animation MLV_Animation
Ce type code une animation. typedef struct _MLV_Animation_player
MLV_Animation_player
Ce type code un lecteur d'animation. typedef struct _MLV_Animation_book
MLV_Animation_book
Ce type correspond à un livre contenant de nombreuses animations.
MLV_Animation * MLV_create_animation (unsigned int
nb_frames, unsigned int nb_layers, unsigned int nb_channels)
Créé une animation comportant un nombre d'image donné
void MLV_free_animation (MLV_Animation *animation)
Cette fonction libère les données allouées pour
l'animation. void MLV_change_frame_in_animation (MLV_Image
**array_of_images, MLV_Sound **array_of_sounds, unsigned int delay,
MLV_Animation *animation, unsigned int position)
Change un animation en remplacant une image et son temps d'affichage
associé. L'image concerné est repéré à
l'aide de son index et de l'index de la couche où elle appartient.
void MLV_change_frame_image_in_animation (MLV_Image *image,
MLV_Animation *animation, unsigned int position, unsigned int layer)
Change un animation en remplacant uniquement une image. L'image
concerné est repéré à l'aide de son index et de
de l'index de sa couche. void MLV_change_frame_sound_in_animation
(MLV_Sound *sound, MLV_Animation *animation, unsigned int
position, unsigned int channel)
Change un animation en remplacant uniquement un bruitage. Le son image
concerné est repéré à l'aide de son index et de
de l'index de son canaul. void MLV_change_frame_delay_in_animation
(unsigned int delay, MLV_Animation *animation, unsigned int position)
Change le temps d'affichage d'une image donnée d'une animation. void
MLV_get_frame_from_animation (MLV_Animation *animation,
unsigned int position, unsigned int layer, MLV_Image **image,
unsigned int *delay)
Recupère l'image et le temps présents à une position et
une couche donnée d'une animation. int
MLV_get_frame_delay_from_animation (MLV_Animation *animation,
unsigned int position)
Renvoie le temps d'affichage de l'image présente à une position
donnée d'une animation donnée. MLV_Image *
MLV_get_frame_image_from_animation (MLV_Animation *animation,
unsigned int position, unsigned int layer)
Renvoie l'image présente à une position et une couche
donnée d'une animation donnée. MLV_Animation_player *
MLV_create_animation_player (MLV_Animation *animation)
Cree un lecteur d'animation et l'initialise avec une animation donnée
en paramètre. void MLV_free_animation_player
(MLV_Animation_player *animation_player)
Libère l'espace mémoire alloué pour un animateur
donné. void MLV_play_animation_player
(MLV_Animation_player *animation_player)
Demare la lecture de l'animation lu par le lecteur d'animation. void
MLV_play_revert_animation_player (MLV_Animation_player
*animation_player)
Demande à un lecteur d'animation donné de jouer l'animation
à l'envers. void MLV_stop_animation_player
(MLV_Animation_player *animation_player)
Met en pause la lecture d'un lecteur d'animation donné. void
MLV_rewind_animation_player (MLV_Animation_player
*animation_player)
Demande à l'animateur de reprendre la lecture de l'animation depuis le
début. void MLV_next_frame (MLV_Animation_player
*animation_player)
Force le lecteur d'animation à passer à l'image suivante. void
MLV_previous_frame (MLV_Animation_player *animation_player)
Force l'animateur à revenir sur l'image précédente. void
MLV_update_animation_player (MLV_Animation_player
*animation_player)
Met a jour un lecteur d'animation. void
MLV_change_sound_volume_of_animation_player
(MLV_Animation_player *animation_player, unsigned int channel, float
volume)
Change le volume sonore d'un bruitage. void
MLV_turn_on_sound_of_animation_player (MLV_Animation_player
*animation_player, unsigned int channel)
Active le son du canal d'un lecteur d'animation donnée. void
MLV_turn_off_sound_of_animation_player (MLV_Animation_player
*animation_player, unsigned int channel)
Désactive le son du canal d'une animation donnée. void
MLV_draw_image_from_animation_player (MLV_Animation_player
*animation_player, unsigned int layer, int x, int y)
Dessine à une position donnée l'image actuellement lue par
l'animateur. Cette image est situè à une couche donnée
en paramètre. void MLV_play_sound_from_animation_player
(MLV_Animation_player *animation_player, unsigned int layer)
Joue le son d'une couche sonore donnée correspondant à l'image
en cours de lecture dans l'animation. void
MLV_play_sounds_from_animation_player (MLV_Animation_player
*animation_player,...)
Même chose que MLV_play_sound_from_animation_player() sauf que
cette fonction permet de lancer plusieurs sons en même temps. void
MLV_play_list_of_sounds_from_animation_player
(MLV_Animation_player *animation_player, unsigned int *layers,
unsigned int nb_layers)
Même chose que MLV_play_sound_from_animation_player() sauf que
cette fonction permet de lancer plusieurs sons en même temps. void
MLV_draw_partial_image_from_animation_player
(MLV_Animation_player *animation_player, unsigned int layer, int
source_x, int source_y, int source_width, int source_height,
MLV_Image *image, int x, int y)
Dessine à l'écran à une position donnée, une
portion de l'image actuellement lue par l'animateur et extraite de la couche
spécifiée en paramètre. void
MLV_draw_image_from_animation_player_on_image
(MLV_Animation_player *animation_player, unsigned int layer,
MLV_Image *image, int x, int y)
Dessine sur une image donnée à une position donnée
l'image actuellement lue par l'animateur et située à une
couche donnée. void
MLV_draw_partial_image_from_animation_player_on_image
(MLV_Animation_player *animation_player, unsigned int layer, int
source_x, int source_y, int source_width, int source_height,
MLV_Image *image, int x, int y)
Dessine sur une image donnée à une position donnée une
portion de l'image actuellement lue par l'animateur et située
à une couche donnée. MLV_Animation_book *
MLV_load_animation_book (const char *xml_file, const char
*image_directory, const char *sound_directory)
Charge en memoire un livre contenant une multitude d'animations. void
MLV_free_animation_book (MLV_Animation_book *animation_book)
Libère la memoire contenue par le livre d'animation. int
MLV_get_number_of_animations (MLV_Animation_book
*animation_book)
Détermine le nombre d'animations contenus par le livre d'animation.
MLV_Animation * MLV_get_animation_from_id
(MLV_Animation_book *animation_book, int id)
Renvoie une animation donnée contenue dans le livre d'animation.
MLV_Animation * MLV_get_animation_from_name
(MLV_Animation_book *animation_book, const char *name)
Renvoie une animation donnée contenue dans le livre d'animation. const
char * MLV_get_name_from_id_animation (MLV_Animation_book
*animation_book, int id_animation)
Renvoie le nom d'un animation à partir de son identifiant dans le livre
d'animation. void MLV_add_frame_in_animation (MLV_Image
**array_of_images, MLV_Sound **array_of_sounds, unsigned int delay,
MLV_Animation *animation)
Ajoute un image dans la séquence d'animation. Cette fonction ne peux
pas augmenter le nombre d'image d'une animation.
Ce fichier définit les prototypes des fonctions permettant de mettre en oeuvre des animations.
Auteur
Marc Zipstein
Cette interface est inspiré du tutoriel : http://www.gnurou.org/writing/linuxmag/sdl/partie3
Ce type code une animation. Une animation est une succéssion de k+l+1 uplets. Chaque uplet contient :
On appelle 'couche graphique i', l'ensemble des images situées à la position i du k+l+1-uplet. On appelle 'couche sonore j', l'ensemble des sons situées à la position k+j du k+l+1-uplet.
Voici la Structure d'une animatione représentée à l'aide d'un tableau :
|-------------------------------------------------------------| | MLV_Animation | |-------------------------------------------------------------| | | | Couche graphique 0 | Image Image Image ... | | Couche graphique 1 | Image Image Image ... | | ... | ... ... ... ... | | Couche graphique k-1 | Image Image Image ... | | ------------------------------------------------------- | | Couche sonore 0 | Son Son Son ... | | Couche sonore 1 | Son Son Son ... | | ... | ... ... ... ... | | Couche sonore k-1 | Son Son Son ... | | ------------------------------------------------------- | | Temps d'affichage | 1 3 1 ... | | | |-------------------------------------------------------------|
Ce type correspond à un livre contenant de nombreuses animations. Un livre d'animations est un fichier XML qui code des animations. Le type MLV_Animation_book code le contenu d'un live d'animation.
Ce type code un lecteur d'animation. Un lecteur d'animation est une structure qui permet d'animer une animation. Cette structure contient :
L'aiguille de l'horologe interne d'une animation avance d'une unité à chaque appel de la fonction MLV_update_animation_player(). Les animations sont alors jouée en fonction de l'évolution du temps de chaque animateur. Ainsi, deux lecteurs différents peuvent avoir une courbe du temps différente.
La bonne façon d'utiliser des lecteurs est de mettre a jour tous les lecteurs en même temps à un intervalle de temps régulier. Pour cela vous pouvez utiliser la fonction framerate qui endort le programme de façon a assurer l'execution d'un tour de boucle à une fréquence donnée
Voici un exemple d'utilisation du lecteur :
MLV_Image* creature1 = MLV_load_image("creature1.png"); MLV_Image* creature2 = MLV_load_image("creature2.png"); int time_per_image = 1; MLV_Animation* animation; animation = MLV_create_animation( 2 ); MLV_change_frame_in_animation( creature1, time_per_image, animation, 0 ); MLV_change_frame_in_animation( creature2, time_per_image, animation, 0 ); MLV_Animation_player* animation_player; animation_player = MLV_create_animation_player( animation ); int frequence = 24; // nombre d'images par secondes MLV_change_frame_rate( frequence ); while( 1 ){
MLV_update_animation_player( animation_player );
MLV_draw_image_from_animation_player(0, 0, 0, animation_player);
MLV_frame_rate_delay(); }
Ajoute un image dans la séquence d'animation. Cette fonction ne peux pas augmenter le nombre d'image d'une animation.
Paramètres
Exemples
advanced/09_animation.c.
Change le temps d'affichage d'une image donnée d'une animation.
Paramètres
Change un animation en remplacant uniquement une image. L'image concerné est repéré à l'aide de son index et de de l'index de sa couche.
Paramètres
Change un animation en remplacant une image et son temps d'affichage associé. L'image concerné est repéré à l'aide de son index et de l'index de la couche où elle appartient.
Paramètres
Change un animation en remplacant uniquement un bruitage. Le son image concerné est repéré à l'aide de son index et de de l'index de son canaul.
Paramètres
Change le volume sonore d'un bruitage.
Paramètres
Exemples
advanced/09_animation.c, et advanced/11_animation_book.c.
Créé une animation comportant un nombre d'image donné Une animationV est une succession d'image où à chaque image est associé un temps. Ce temps code le temps d'affichage de chaque image, lors du rendu de de l'animation. Pour des raisons de commodité, nos séquence d'animations sont composés de plusieurs couches. Elles sont donc des successions de couches contenant chacunes une image.
Une sequence d'animation (à ne pas confondre avec une animation) est une pure structure de donnée. Elle peut donc pas s'animer, ni s'afficher à l'ecran. Pour afficher une séquence d'animation, il faut utiliser une animation, qui s'aidera de la séquence d'animation pour s'afficher ou pour mettre en mouvement les images de la séquence d'animation.
Le temps d'une s'quence d'animation n'est pas codée en secondes. Il s'agit d'un entier. Lorsque vous utilisez une animation, l'animateur à un temps qui lui est propre et qui est codé à l'aide d'un entier qui croit. Les duree que vous ajouterez dans l'animation sont donc définit par rapport au temps de l'animation qui utilise la séquence d'animation.
Paramètres
Renvoie
Exemples
advanced/09_animation.c.
Cree un lecteur d'animation et l'initialise avec une animation donnée en paramètre.
Paramètres
Renvoie
Exemples
advanced/09_animation.c, et advanced/11_animation_book.c.
Dessine à une position donnée l'image actuellement lue par l'animateur. Cette image est situè à une couche donnée en paramètre.
Paramètres
Exemples
advanced/09_animation.c, et advanced/11_animation_book.c.
Dessine sur une image donnée à une position donnée l'image actuellement lue par l'animateur et située à une couche donnée.
Paramètres
Dessine à l'écran à une position donnée, une portion de l'image actuellement lue par l'animateur et extraite de la couche spécifiée en paramètre.
Paramètres
Dessine sur une image donnée à une position donnée une portion de l'image actuellement lue par l'animateur et située à une couche donnée.
Paramètres
Cette fonction libère les données allouées pour l'animation.
Paramètres
Exemples
advanced/09_animation.c.
Libère la memoire contenue par le livre d'animation.
Paramètres
Exemples
advanced/11_animation_book.c.
Libère l'espace mémoire alloué pour un animateur donné.
Paramètres
Exemples
advanced/09_animation.c, et advanced/11_animation_book.c.
Renvoie une animation donnée contenue dans le livre d'animation.
Paramètres
Renvoie
Renvoie une animation donnée contenue dans le livre d'animation.
Paramètres
Renvoie
Exemples
advanced/11_animation_book.c.
Renvoie le temps d'affichage de l'image présente à une position donnée d'une animation donnée.
Paramètres
Renvoie
Recupère l'image et le temps présents à une position et une couche donnée d'une animation.
Paramètres
Renvoie l'image présente à une position et une couche donnée d'une animation donnée.
Paramètres
Renvoie
Renvoie le nom d'un animation à partir de son identifiant dans le livre d'animation.
Paramètres
Renvoie
Détermine le nombre d'animations contenus par le livre d'animation.
Paramètres
Renvoie
Charge en memoire un livre contenant une multitude d'animations.
Paramètres
Renvoie
Exemples
advanced/11_animation_book.c.
Force le lecteur d'animation à passer à l'image suivante.
Paramètres
Demare la lecture de l'animation lu par le lecteur d'animation.
Paramètres
Exemples
advanced/09_animation.c, et advanced/11_animation_book.c.
Même chose que MLV_play_sound_from_animation_player() sauf que cette fonction permet de lancer plusieurs sons en même temps.
Paramètres
Demande à un lecteur d'animation donné de jouer l'animation à l'envers.
Paramètres
Exemples
advanced/09_animation.c.
Joue le son d'une couche sonore donnée correspondant à l'image en cours de lecture dans l'animation. Si le son a déjà été joué, cette fonction ne fait rien.
Paramètres
Exemples
advanced/09_animation.c, et advanced/11_animation_book.c.
Même chose que MLV_play_sound_from_animation_player() sauf que cette fonction permet de lancer plusieurs sons en même temps. La liste des couches sonores à jouer doivent être passé en paramètre (un paramètre par couche), et le dernier paramètre doit valoir -1 pour dire à la fonction quand il doit s'arrêter.
Par exemple, pour jouer les couches 2, 3 et 5 d'une animation, il suffit d'écrire:
MLV_play_sounds_from_animation_player(
animation,
2, 3, 5,
-1 );
Paramètres
Force l'animateur à revenir sur l'image précédente.
Paramètres
Demande à l'animateur de reprendre la lecture de l'animation depuis le début.
Paramètres
Met en pause la lecture d'un lecteur d'animation donné.
Paramètres
Désactive le son du canal d'une animation donnée.
Paramètres
Exemples
advanced/11_animation_book.c.
Active le son du canal d'un lecteur d'animation donnée.
Paramètres
Exemples
advanced/09_animation.c, et advanced/11_animation_book.c.
Met a jour un lecteur d'animation. L'horloge interne du lecteur voit son temps incrémenter de 1 unité exactement.
La position de lecture de l'animation est mis a jour en conséquence de la mis à jour de l'horloge interne.
Paramètres
Exemples
advanced/09_animation.c, et advanced/11_animation_book.c.
Généré automatiquement par Doxygen pour MLV-3.1.0 à partir du code source.
Lundi 2 Janvier 2023 | MLV-3.1.0 |