Miért nem tud a Game Maker 7 Pro közvetlenül lejátszani az AVI-t:
* Korlátozott multimédiás támogatás: A Game Maker 7 Pro 2007-ben jelent meg, mielőtt a modern videokodekek széles körben elterjedtek. Elsősorban régebbi multimédiás könyvtárakra támaszkodik, amelyek natívan nem támogatják az AVI-t.
* Nincs beépített AVI-dekóder: A motorból hiányzik az AVI fájlok beépített dekódere.
Alternatívák:
1. Átalakítás támogatott formátumokká:
* GIF: A Game Maker 7 Pro képes GIF-ek megjelenítésére. Az AVI-t GIF formátumba konvertálhatja online eszközök vagy szoftverek, például a GIMP segítségével. A GIF-eknek azonban vannak korlátai a hossz és a minőség tekintetében.
* Egyéb képformátumok: Próbálja meg konvertálni az AVI-t PNG, JPG vagy BMP képek sorozatává. Ezután a Game Maker sprite-kezelési funkcióival sorban betöltheti és megjelenítheti ezeket a képeket a játékon belül.
* FLV/SWF: Ha ismeri a Flash-t, exportálhatja a videót FLV vagy SWF formátumban, és használhatja a Flash-integrációt a Game Makerben (ha elérhető az Ön verziójában). Ez egy fejlettebb megközelítés.
2. Külső könyvtárak (speciális):
* DirectShow: Ha jól ismeri a C++-t és a DLL-eket, megpróbálhat integrálni egy DirectShow-könyvtárat (Windows-hoz) az AVI-lejátszás kezelésére. Ez egy összetett megközelítés, de nagyobb rugalmasságot kínál.
3. Modern Game Maker alternatívák (ajánlott):
* Game Maker Studio 2: Ez az újabb verzió sokkal jobb multimédiás támogatással rendelkezik, beleértve a különféle formátumok beépített videólejátszási képességeit (beleértve az AVI-t is, a használt kodektől függően). Érdemes megfontolni a frissítést, ha új projekteken dolgozik.
Íme egy egyszerűsített módszer a képek egymás utáni megjelenítéséhez:
``` gml
// Töltse be az AVI sorozat első képét (feltételezve, hogy el vannak nevezve
// frame001.png, frame002.png stb.)
var image =sprite_add("frame001.png", 0, 0);
// Tárolja a képindexet
var imageIndex =1;
// A játékhurokban vagy a frissítési funkcióban:
if (imageIndex <=totalFrames) {
// A következő kép betöltése
sprite_set_image(image, sprite_add("frame" + string(imageIndex) + ".png", 0, 0));
imageIndex++;
} másik {
// Lejátszás vagy ciklus leállítása
}
```
Ne feledje: Ez a példa azt feltételezi, hogy az AVI-t egyedi képekké alakította. Előfordulhat, hogy az adott kódot módosítani kell a képsorozat elnevezése és a játék logikája alapján.