Documentation de la bibliothèque MLV-2.0.2

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/>.
*/