|
|
# MerlinCore 2.3.0
|
|
|
|
|
|
## Camera
|
|
|
|
|
|
Pridaná funkcionalita pre zmenu zoomu:
|
|
|
|
|
|
```csharp
|
|
|
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`:
|
|
|
|
|
|
```csharp
|
|
|
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ý `Unfinished` stav
|
|
|
- ak fukcia vráti `Unfinished` pokračuje sa na novú iteráciu update a render
|
|
|
- ak funkcia vráti `Failed` hra končí a zobrazí sa správa nastavená pre prehranú hru
|
|
|
- ak funkcia vráti `Finished` level 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. |