Entita vo WME nie je nič iné, ako grafický objekt, ktorý sa načíta do VGA RAM, a má ešte nejaké ďalšie vlastnosti. V podstate, vo WME je každý grafický objekt Entita.
Poďme však trocha do praxe:
1. Vezmime v úvahu Scene Creation Tutorial, ktorý je obsiahnutý v dokumentácii. Tuto je písane, že napr. objekt desk je entita. Slúži na prekrývanie medzi postavou a vrstvou, ktorá reprezentuje ten stol.
To, ako ho pridať do scény, a ako mu nastaviť nejaké vlastnosti cez skript, je popísane v dokumentácii danej sekcie.
2. Mám entitu, ktorá bude NPC postava. Pokiaľ ju chcem používať, potrebujem ju najskor načítať do pamati. Na to slúži príkaz
Game.LoadEntity() resp.
Scene.LoadEntity() Aký je medzi nimi rozdiel? V prípade
Game.LoadEntity() bude entita v každej scéne počas celej hry. V prípade
Scene.LoadEntity() bude entita načítaná iba v danej scéne, ktorej skript obsahuje tento príkaz.
Pozn.: Ak by sa tu našiel niekto, kto by ma chcel chytiť za slovo, tak ak použijem príkaz Game.LoadEntity a že budem argumentovať s tým, že entita bude v každej scéne, nie je problém pre danú scénu, kde túto entitu nechcem mať nastaviť MojaEntita.Active = false;
Pri pohľade do dokumentácie je vidieť, že dve vymenované funkcie majú návratovú hodnotu odkaz do pamati. Preto je tento odkaz potrebné uložiť do nejakej premennej, aby keď budem chcieť pracovať s entitou, engine vedel, o ktorú ide, resp. kde sa nachádza.
Takže, celý skript pre načítanie entity do danej scény bude podobne:
#include "scripts\base.inc"
// here comes the stuff which initializes the scene
var MojaEntita = Game.LoadEntity(cesta_ku_MojaEntita); // samozrejme, može byť použitá aj globálna premenná, ale nebudeme to komplikovať
MojaEntita.X = 400;
MojaEntita.Y = 400;
MojaEntita.Active = true;
Je doležíté si uvedomiť, že kod, ktorý je napísaný v skripte, sa číta a interpretuje zhora nadol, čiže aj poradie, v akom sa má načítať entita a postava má svoj význam (nebudem zachádzať ďaleko, stačí skúšať).
Aby sme to už skutočne dorazili, je možné ešte použiť niečo takéto:
var MojaEntita = Game.LoadEntity(cesta_ku_MojaEntita); // samozrejme, može byť použitá aj globálna premenná, ale nebudeme to komplikovať
if(MojaEntita == null)
Game.Msg("Chyba: Nepodarilo sa načitať entitu MojaEntita do pamati!");
else
{
MojaEntita.X = 400;
MojaEntita.Y = 400;
MojaEntita.Active = true;
}
Snáď Ti to niečo pomohlo:).