MerlinCore 2.3.0
Camera
Pridaná funkcionalita pre zmenu zoomu:
container.SetCameraZoom(1.0f);
Kde 1.0 je pôvodná hodnota.
Map
Ukončenie levelu:
void IWorld.SetEndCondition(Func<IWorld, MapStatus> condition)
očakáva funkciu (delegate alebo lambda) ktorá dostane IWorld a vracia enum MapStatus:
namespace Merlin2d.Game.Enums
{
public enum MapStatus
{
Unfinished,
Failed,
Finished
}
}
Kontrola sa vykonáva po každom Update() sveta:
- ak nie je implementovaná kontrola, engine sa tvári, ako keby bol vrátený
Unfinishedstav - ak fukcia vráti
Unfinishedpokračuje sa na novú iteráciu update a render - ak funkcia vráti
Failedhra končí a zobrazí sa správa nastavená pre prehranú hru - ak funkcia vráti
Finishedlevel končí a:- ak už nie ďalšia dostupná mapa (nepoužíva sa multi-level container / posledný level) zobrazí sa správa nastavená pre vyhratú hru
- ak je dostupná ďalšia mapa, načíta sa a hra pokračuje na tejto mape
End game messages
container.SetEndGameMessage(IMessage message, bool isGameSuccessful) nastaví ukončovaciu správu - isGameSuccessful true nastaví pre vyhratú hru a false pre prehratú.
Multi-level container mode
Treba v GameContainer povoliť používanie viacerých levelov:
new GameContainer(name, width, height, true) (ak je nastavený false alebo vôbec nie je posledný parameter, tak všetko funguje ako doteraz)
Následne nemáte vytvorený žiadny svet, je potrebné si ich pridať:
int AddWorld(string mapSource) - návratová hodnota je index levelu - viete takto pristupovať k rôznym mapám keď nastavujete parametre.
IWorld GetWorld(int index) - vracia svet s daným indexom - pozor bezparametrický GetWorld() vyvolá InvalidOperationException v tomto režime
int GetWorldCount() - vracia počet pridaných svetov - kolekcia so svetmi nie je dostupná priamo.