# Documentación de la biblioteca MLV-2.0.2

- Presentación
- Descargar
- Instalación
- Compilatción
- Ejemplos
- API
- Lista de las subrutinas
- bugs
- FAQ
- Contactos

MLV_animation.h
1 /*
2 * This file is part of the MLV Library.
3 *
4 * Copyright (C) 2010,2011,2012 Adrien Boussicault, Marc Zipstein
5 *
6 *
7 * This Library is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This Library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this Library. If not, see <http://www.gnu.org/licenses/>.
19 */
20
34 #ifndef __MLV__MLV_ANIMATION_H__
35 #define __MLV__MLV_ANIMATION_H__
36
37 #include "MLV_image.h"
38 #include "MLV_audio.h"
39
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43
45 // Animation data
47
91 typedef struct _MLV_Animation MLV_Animation;
92
121 MLV_Animation* MLV_create_animation(
122 unsigned int nb_frames, unsigned int nb_layers, unsigned int nb_channels
123 );
124
130 void MLV_free_animation( MLV_Animation* animation );
131
145 void MLV_change_frame_in_animation(
146 MLV_Image** array_of_images, MLV_Sound** array_of_sounds, unsigned int delay,
147 MLV_Animation* animation, unsigned int position
148 );
149
160 void MLV_change_frame_image_in_animation(
161 MLV_Image* image, MLV_Animation* animation, unsigned int position,
162 unsigned int layer
163 );
164
175 void MLV_change_frame_sound_in_animation(
176 MLV_Sound* sound, MLV_Animation* animation, unsigned int position,
177 unsigned int channel
178 );
179
187 void MLV_change_frame_delay_in_animation(
188 unsigned int delay, MLV_Animation* animation, unsigned int position
189 );
190
201 void MLV_get_frame_from_animation(
202 MLV_Animation* animation, unsigned int position,
203 unsigned int layer,
204 MLV_Image** image, unsigned int* delay
205 );
206
207
208
218 int MLV_get_frame_delay_from_animation(
219 MLV_Animation* animation, unsigned int position
220 );
221
232 MLV_Image* MLV_get_frame_image_from_animation(
233 MLV_Animation* animation, unsigned int position,
234 unsigned int layer
235 );
236
237
238
239
241 // Animation engine
243
290 typedef struct _MLV_Animation_player MLV_Animation_player;
291
292
301 MLV_Animation_player* MLV_create_animation_player( MLV_Animation* animation );
302
308 void MLV_free_animation_player( MLV_Animation_player* animation_player );
309
315 void MLV_play_animation_player( MLV_Animation_player* animation_player );
316
322 void MLV_play_revert_animation_player( MLV_Animation_player* animation_player );
323
329 void MLV_stop_animation_player( MLV_Animation_player* animation_player );
330
337 void MLV_rewind_animation_player( MLV_Animation_player* animation_player );
338
344 void MLV_next_frame( MLV_Animation_player* animation_player );
345
351 void MLV_previous_frame( MLV_Animation_player* animation_player );
352
364 void MLV_update_animation_player( MLV_Animation_player* animation_player );
365
373 void MLV_change_sound_volume_of_animation_player(
374 MLV_Animation_player* animation_player, unsigned int channel, float volume
375 );
376
383 void MLV_turn_on_sound_of_animation_player(
384 MLV_Animation_player* animation_player, unsigned int channel
385 );
386
393 void MLV_turn_off_sound_of_animation_player(
394 MLV_Animation_player* animation_player, unsigned int channel
395 );
396
397
399 // Drawing animation
401
413 void MLV_draw_image_from_animation_player(
414 MLV_Animation_player* animation_player, unsigned int layer,
415 int x, int y
416 );
417
427 void MLV_play_sound_from_animation_player(
428 MLV_Animation_player* animation_player, unsigned int layer
429 );
430
453 void MLV_play_sounds_from_animation_player(
454 MLV_Animation_player* animation_player,
455 ...
456 );
457
467 void MLV_play_list_of_sounds_from_animation_player(
468 MLV_Animation_player* animation_player, unsigned int* layers,
469 unsigned int nb_layers
470 );
471
472
490 void MLV_draw_partial_image_from_animation_player(
491 MLV_Animation_player* animation_player, unsigned int layer,
492 int source_x, int source_y, int source_width, int source_height,
493 MLV_Image* image,
494 int x, int y
495 );
496
509 void MLV_draw_image_from_animation_player_on_image(
510 MLV_Animation_player* animation_player, unsigned int layer,
511 MLV_Image* image,
512 int x, int y
513 );
514
532 void MLV_draw_partial_image_from_animation_player_on_image(
533 MLV_Animation_player* animation_player, unsigned int layer,
534 int source_x, int source_y, int source_width, int source_height,
535 MLV_Image* image,
536 int x, int y
537 );
538
539
540
541
543 // Loading animations from files
545
553 typedef struct _MLV_Animation_book MLV_Animation_book;
554
555
570 MLV_Animation_book* MLV_load_animation_book(
571 const char* xml_file,
572 const char* image_directory,
573 const char* sound_directory
574 );
575
581 void MLV_free_animation_book(
582 MLV_Animation_book* animation_book
583 );
584
591 int MLV_get_number_of_animations(
592 MLV_Animation_book* animation_book
593 );
594
602 MLV_Animation* MLV_get_animation_from_id(
603 MLV_Animation_book* animation_book,
604 int id
605 );
606
614 MLV_Animation* MLV_get_animation_from_name(
615 MLV_Animation_book* animation_book,
616 const char* name
617 );
618
627 const char* MLV_get_name_from_id_animation(
628 MLV_Animation_book* animation_book, int id_animation
629 );
630
645 void MLV_add_frame_in_animation(
646 MLV_Image** array_of_images, MLV_Sound** array_of_sounds, unsigned int delay,
647 MLV_Animation* animation
648 );
649
650 #ifdef __cplusplus
651 }
652 #endif
653
654 #endif
655