Pourquoi Game Maker 7 Pro ne peut pas lire directement AVI :
* Support multimédia limité : Game Maker 7 Pro est sorti en 2007, avant l'adoption généralisée des codecs vidéo modernes. Il s'appuie principalement sur des bibliothèques multimédias plus anciennes qui ne supportent pas nativement AVI.
* Pas de décodeur AVI intégré : Le moteur ne dispose pas d'un décodeur intégré pour les fichiers AVI.
Alternatives :
1. Convertir vers les formats pris en charge :
* GIF : Game Maker 7 Pro peut afficher des GIF. Vous pouvez convertir votre AVI en GIF à l'aide d'outils en ligne ou de logiciels comme GIMP. Cependant, les GIF ont des limites en termes de longueur et de qualité.
* Autres formats d'images : Essayez de convertir votre AVI en une séquence d'images PNG, JPG ou BMP. Vous pouvez ensuite charger et afficher ces images en séquence dans votre jeu à l'aide des fonctions de gestion des sprites de Game Maker.
* FLV/SWF : Si vous êtes familier avec Flash, vous pouvez exporter la vidéo au format FLV ou SWF et utiliser l'intégration Flash dans Game Maker (si disponible dans votre version). Il s’agit d’une approche plus avancée.
2. Bibliothèques externes (avancées) :
* DirectShow : Si vous êtes à l'aise avec le C++ et les DLL, vous pouvez essayer d'intégrer une bibliothèque DirectShow (pour Windows) pour gérer la lecture AVI. Il s’agit d’une approche complexe, mais elle offre une plus grande flexibilité.
3. Alternatives à Modern Game Maker (recommandées) :
* Game Maker Studio 2 : Cette version plus récente offre un bien meilleur support multimédia, notamment des capacités de lecture vidéo intégrées pour différents formats (y compris AVI, selon le codec utilisé). Cela vaut la peine d'envisager une mise à niveau si vous travaillez sur de nouveaux projets.
Voici une approche simplifiée pour afficher des images en séquence :
```gml
// Chargez la première image de votre séquence AVI (en supposant qu'elle soit nommée
// frame001.png, frame002.png, etc.)
var image =sprite_add("frame001.png", 0, 0);
// Stocke l'index de l'image
var imageIndex =1 ;
// Dans votre boucle de jeu ou fonction de mise à jour :
si (imageIndex <=totalFrames) {
// Charge l'image suivante
sprite_set_image(image, sprite_add("frame" + string(imageIndex) + ".png", 0, 0));
imageIndex++;
} autre {
// Arrête la lecture ou la boucle
}
```
N'oubliez pas : Cet exemple suppose que vous avez converti votre AVI en images individuelles. Le code spécifique peut nécessiter des ajustements en fonction du nom de votre séquence d'images et de la logique du jeu.