Diskuze: Game maker - náhodné vygenerování (diplomová práce)
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí GameMakeru, jsme si ověřili nabyté zkušenosti z kurzu.


Dělat to ikonama asi moc nepůjde. A když, tak strašně složitě.
Už teď je to nepřehledné a spousta objektů. Normálně se používá
položka parent a zvolí se objekt, který definuje chování
společné pro všechny. Místo šedesáti objektů pak klikáš jeden.
Ale nevadí.
Pozor, následující text je určen k prostudování a pochopení, ne k bezhlavému opsání.
Generovat náhodně slova ze seznamu je celkem jednoduchá věc. V objektu generator_slov dáš ikonu volně psaného kódu a napíšeš něco jako tohle:
///poloha pri vytvoreni
var n;
n=0; //počitadlo objektu
n+=1; a[n]=jedna; //kazdy objekt se ulozi v poli **a** v poradi **n**
n+=1; a[n]=dva;
//dopsat až do konce;
nahodny_objekt=a[irandom_range(1,n)]; //vybere se nahodne jeden z nich
with(instance_create(0,0,nahodny_objekt)) //vlozi se do mistnosti na pozici 0,0
{
x=irandom_range(48,1296-sprite_width); //a ihned se premisti na pozici mezi hornim levym
y=irandom_range(64,576-sprite_height); //a dolnim pravym koncem herniho pole
move_snap(16,16); //zarovnani do mrizky by asi ani nebylo treba, slova jsou dost velka pro kolizi
}
Slovo se při kontaktu s čímkoli může snadno zapsat do seznamu velice
podobným způsobem jako se z něj vytvořilo. Aby objekt nezmizel při
opuštění místnosti, musí mít zapnutou vlastnost persistent. Pokud se takto
použije generator_slov, vypadalo by to nějak takto:
( pro změnu proměnné v jiném objektu se použije tečka:
objekt.promenna=cislo; )
///kod v objektu generator_slov, event create
pocet_chycenych_slov=0;
///kod v objektu slovo, event kolize s hracem
generator_slov.pocet_chycenych_slov+=1;
generator_slov.b[generator_slov.pocet_chycenych_slov]=object_index;
Nepřátelé jsou svým způsobem podobní hráči, jen bych řekl, že jsou jednodušší .Při kolizi slova s nepřítelem stačí asi slovo zničit. Pak teoreticky asi ještě způsobit vygenerování dalšího slova.
//doporucuji dat kod generovani slov do uzivatelskeho eventu 1 ( zeleny kosoctverec )
with(generator_slov) event_user(1);
instance_destroy();
Mockrát děkuji za pomoc, s mnoho věcmi mi to pomohlo. Jenom jsem nepochopila tu poslední část a kód se "zeleným kosočtvercem".
____Nevím co přesně dělá uživatelský event______
//doporucuji dat kod generovani slov do uzivatelskeho eventu 1 ( zeleny
kosoctverec )
with(generator_slov) event_user(1);
instance_destroy();
__________________________________________
Dále by mě zajímala varianta s položkou "parent". Položku parent jsem nalezla, ale nepochopila jsem pořád její využití, jak to napárovat na všech 60 slov, bez toho aby to byli jednotlivé objekty.
3. Problém: U nepřátel (počítač) bych potřebovala nastavit, aby se pohybovali ke slovům. Jakmile by se slovo vygenerovalo, tak k dané pozici by v tu chvíli směřoval i nepřítel.
Mohla bych poprosit o další pomoc a nějaké vysvětlení? Předem mockrát
děkuji. 
Tak dědičnost jsem už pochopila. 
Vytvořila jsem si objekt "slovo" a na všech slovech jsem poté nastavila
parent (dědičnost) na objekt "slovo".
Dobrá práce. Málo lidí čte, přemýšlí a píše ( v tomto uvedeném pořadí).
Uživatelský event je sice podobný těm ostatním ( step, create... ), ale nenastává sám. Prostě čeká, až ho někde něco spustí. Je to dobré jen pro přehlednost. Pomocí event_perform se dá spustit jakýkoli event - třeba umělý klik myší. Jsou ale i další možnosti. Když se má nějaká činnost opakovat, lze ji uložit jako skript a pak spouštět libovolně.
Pokud má generátor slov umět generovat slova, může to mít právě v
uživatelském eventu. Ale vzhledem k rychlosti chápání, bych doporučil
zkusit ty skripty. Je to snadné a skvělé.
Klikne se na Create script a v textovém poli Name se pojmenuje. Do prázdného
textového pole se dá napsat cokoli, co se má dít a pak to mohou různé
objekty opakovat. Příklad je vidět na obrázku v příloze. Takový skript by
se pak spouštěl napsáním jeho názvu a kulatých závorek. Např:
vytvor_slovo()
Když se mají nepřátelé pohybovat ke slovu, je to celkem snadné. Slovo
má polohu xy uloženu ve svých proměnných, takže slovo.x a slovo.y
Nepřítel prostě posune své souřadnice xy směrem k souřadnicím slova.
Něco jako toto:
x+=sign(slovo.x-x); //sign zaridi, aby posun byl prave o +1, 0, -1
y+=sign(slovo.y-y);
Tyto výpočty posunou objekt, v němž jsou provedeny směrem k poloze slova.
Zobrazeno 5 zpráv z 5.