Documentation de la bibliothèque MLV-3.1.0

advanced/11_animation_book.c

Ce programme charge un enseble d'animation a partir d'un fichier de configuration au format xml et d'un certain nombre d'image donnée.

#include <MLV/MLV_all.h>
//
// Attention !
// Pour pouvoir compiler ce programme sous windows et sous macintosh,
// il faut, pour la déclaration du main, respecter strictement la syntaxe
// suivante :
//
int main( int argc, char *argv[] ){
MLV_Keyboard_button touche = MLV_KEYBOARD_NONE;
int width = 640, height = 480;
int x_walk = 0, y = 0, x_run = 100;
MLV_create_window( "advanced - 9 animation", "animation", width, height );
MLV_Animation *run_animation, *walk_animation;
MLV_Animation_player* run_animation_player, *walk_animation_player;
const char* book_file_path = "animation_book.xml";
book = MLV_load_animation_book( book_file_path, NULL, NULL );
if( ! book ){
fprintf( stderr, "Failed to load the file %s\n", book_file_path );
exit(1);
}
walk_animation = MLV_get_animation_from_name( book, "walk" );
run_animation = MLV_get_animation_from_name( book, "run" );
walk_animation_player = MLV_create_animation_player( walk_animation );
run_animation_player = MLV_create_animation_player( run_animation );
MLV_play_animation_player( walk_animation_player );
MLV_turn_off_sound_of_animation_player( walk_animation_player, 0 );
MLV_change_sound_volume_of_animation_player( walk_animation_player, 0, 0.2 );
MLV_play_animation_player( run_animation_player );
MLV_turn_off_sound_of_animation_player( run_animation_player, 0 );
MLV_change_sound_volume_of_animation_player( run_animation_player, 0, 0.2 );
int sound = 0;
while(
&touche, NULL, NULL,
NULL, NULL,
NULL, NULL, NULL,
NULL
) == MLV_NONE ||
touche != MLV_KEYBOARD_ESCAPE
){
MLV_update_animation_player( run_animation_player );
MLV_update_animation_player( walk_animation_player );
20,150,
"Laissez la touche k appuyee pour entendre le son des animations.",
);
MLV_draw_image_from_animation_player( run_animation_player, 0, x_run, y );
MLV_draw_image_from_animation_player( walk_animation_player, 0, x_walk, y );
MLV_play_sound_from_animation_player( run_animation_player, 0 );
MLV_play_sound_from_animation_player( walk_animation_player, 0 );
if( touche==MLV_KEYBOARD_k ){
if( sound ){
MLV_turn_off_sound_of_animation_player( walk_animation_player, 0 );
MLV_turn_off_sound_of_animation_player( run_animation_player, 0 );
sound = 0;
}else{
MLV_turn_on_sound_of_animation_player( walk_animation_player, 0 );
MLV_turn_on_sound_of_animation_player( run_animation_player, 0 );
sound = 1;
}
touche = MLV_KEYBOARD_NONE;
}
}
MLV_free_animation_player( walk_animation_player );
MLV_free_animation_player( run_animation_player );
return 0;
}
/*
* This file is part of the MLV Library.
*
* Copyright (C) 2010,2011,2012,2013 Adrien Boussicault, Marc Zipstein
*
*
* This Library is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This Library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this Library. If not, see <http://www.gnu.org/licenses/>.
*/
MLV_turn_off_sound_of_animation_player
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.
MLV_play_animation_player
void MLV_play_animation_player(MLV_Animation_player *animation_player)
Demare la lecture de l'animation lu par le lecteur d'animation.
MLV_free_animation_book
void MLV_free_animation_book(MLV_Animation_book *animation_book)
Libère la memoire contenue par le livre d'animation.
MLV_free_audio
void MLV_free_audio()
Ferme proprement les différents périphériques audios.
MLV_create_window
void MLV_create_window(const char *window_name, const char *icone_name, unsigned int width, unsigned int height)
Créé une fenêtre dont la taille, et les différents noms sont passés en paramètres.
MLV_update_animation_player
void MLV_update_animation_player(MLV_Animation_player *animation_player)
Met a jour un lecteur d'animation.
MLV_COLOR_BROWN
#define MLV_COLOR_BROWN
Definition: MLV_color.h:1207
MLV_get_event
MLV_Event MLV_get_event(MLV_Keyboard_button *key_sym, MLV_Keyboard_modifier *key_mod, int *unicode, char **texte, MLV_Input_box **input_box, int *mouse_x, int *mouse_y, MLV_Mouse_button *mouse_button, MLV_Button_state *state)
Cette fonction récupère un évènement dans la file d'attente, remplit en fonction de l'évènement récup...
MLV_Keyboard_button
MLV_Keyboard_button
Énumère l'ensemble des codes des touches du clavier.
Definition: MLV_keyboard.h:50
MLV_Animation_player
struct _MLV_Animation_player MLV_Animation_player
Ce type code un lecteur d'animation.
Definition: MLV_animation.h:290
MLV_NONE
@ MLV_NONE
Definition: MLV_event.h:47
MLV_delay_according_to_frame_rate
void MLV_delay_according_to_frame_rate()
Suspend l'exécution du programme de façon à ce que le temps écoulé depuis le drenier appel à cette fo...
MLV_change_frame_rate
void MLV_change_frame_rate(int rate)
Configure la fréquence de rafraichissement en Hz.
MLV_free_window
void MLV_free_window()
Ferme la fenêtre de la bibliothèque MLV.
MLV_Animation
struct _MLV_Animation MLV_Animation
Ce type code une animation.
Definition: MLV_animation.h:91
MLV_draw_image_from_animation_player
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 c...
MLV_stop_all_sounds
void MLV_stop_all_sounds()
Arrête tous les échantillons sonores.
MLV_change_sound_volume_of_animation_player
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.
MLV_update_window
void MLV_update_window()
Met à jour l'affichage de la fenêtre.
MLV_free_animation_player
void MLV_free_animation_player(MLV_Animation_player *animation_player)
Libère l'espace mémoire alloué pour un animateur donné.
MLV_draw_text
void MLV_draw_text(int x, int y, const char *text, MLV_Color color,...)
Imprime un texte donné à une position et une couleur données.
MLV_get_animation_from_name
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.
MLV_Animation_book
struct _MLV_Animation_book MLV_Animation_book
Ce type correspond à un livre contenant de nombreuses animations.
Definition: MLV_animation.h:553
MLV_create_animation_player
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.
MLV_play_sound_from_animation_player
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.
MLV_all.h
Fichier d'entête principal incluant tous les autres fichiers entêtes de la bibliothèque MLV.
MLV_turn_on_sound_of_animation_player
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.
MLV_clear_window
void MLV_clear_window(MLV_Color color)
Éfface la fenêtre et la remplace par un monochrome de la couleur donnée en paramètre.
MLV_init_audio
int MLV_init_audio()
Cette fonction initialise la bibliothèque MLV pour pouvoir jouer de la musique et des sons.
MLV_load_animation_book
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.
MLV_COLOR_BLACK
#define MLV_COLOR_BLACK
Definition: MLV_color.h:379