V bludišti se automaticky pohybují zlí duchové (velocity, bounce). Pohyb vodorovně = vx, pohyb svisle = vy.
Je jich hodně, proto jejich vytvoření schováme do funkce (Advanced > Functions). Také na umístění všech postav vytvoříme funkci.
Do složitějšího bludiště s možností úkrytu by se hodili ještě duchové automaticky pronásledující hráče (follow).
Při startu nejprve nakreslíme mapu a vytvoříme hlavní postavu, seznámíme hráče s úkolem (long say), a nakonec zavoláme obě nachystané funkce (call).
Overlap player–enemy:
Pokud se hráč střetne s duchem, ztratí život a všichni se rozmístí na původní pozice. Stačí znovu zavolat funkci umistiPostavy.
Overlap player–blok:
Při každém stoupnutí na dlaždičku s jídlem se
dlaždička změní na běžnou podlahu,
hráči přibyde bod
animuje krátké otevření pusinky
Na konci hry budou mít všichni úspěšní hráči stejný počet bodů. Mohl by je tedy zajímat čas, jak dlouho hru hráli. Využijeme koncovou zprávu a složení několika textů dohromady (join). Čas (time since start) přepočítáme celočíselným dělením z milisekund na sekundy (integer / 1000).
Procházení zdí můžeme nastavit libovolné postavě, třeba pronásledující obludě nebo hráči po nalezení určitého předmětu.
Dveře ukrývají novou mapu, ze které se hráč po průzkumu nebo splnění úkolu vrátí zpět do hlavního hracího plánu nejlépe ke dveřím, kterými vešel. Takto vybudujeme svět s příběhem.
Pokud je hra složitější, je dobré využívat a funkce, aby se program snadno rozšiřoval.
Místo dveří mohou být v mapě postavy, které hráče vezmou do svých světů. Mohou navíc mít v bublině text s popisem, co hráče čeká. V jedné hře můžeme mít schovaných her několik. V takovém případě je obzvlášť důležité strukturovat program pomocí dobře pojmenovaných funkcí.
Kousek kódu, zbývá doprogramovat další světy i s vlastními pravidly. Nevyužité průvodce stačí v načítacích funkcích postavit mimo hrací plán a při načtení úvodu se opět objeví. Můžeme je také vždy odstranit a při načtení úvodu znovu vytvořit.
Při kontaktu hráče s portálem se do stavové proměnné hra nastaví symbolický název hry. Podle hodnoty hra se rozvětvenou podmínkou volí chování při všech akcích:
stisk tlačítek
kontakt s jinou postavou nebo dlaždičkou
dosažení skóre, životů nebo odpočtu
update hry v pravidelný čas
Podmínka musí být použita vždy, aby se akce nespustila v jiné hře.
Místo konce hry použijeme long text a návrat na hlavní obrazovku.
Funkce startHlavni pro návrat na hlavní obrazovku zruší postupně všehny postavy (destroy all), potom teprve nastaví mapu a postavu.
V časovaných hrách při startu hry uložíme čas od startu a na konci tuto hodnotu odečtme od aktuální, celočíselně vydělíme tisícem a zobrazíme v textu pomocí join.
bublina – hasič – opice – poklad – packolečko
Důležité postřehy
vždy je potřeba nastavit barvu pozadí a tilemap, i když bychom ji v původní hře neměli, protože jinak se použije ta z předchozí hry a změní hrací plochu (tečky se umístily mimo plochu, oheň zůstal ležet u dolního okraje)
pozor na camera follow, může ovlivnit souřadnice následujících her, proto je ve funkci startHlavni nejprve zarovnána nastavením na hráče a potom nastavena na prázdnou hodnotu, aby se scéna nepohybovala