Diskuze: C# - Pac-man
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 8 zpráv z 8.
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, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Kolize jde řešit skrz Rectangle.IntersectsWith(...)
Animaci můžeš udělat tak, že tam budeš mít nějaký stav a podle toho
budeš měnit obrázek. Stav můžeš uchovávat jako normální číslo. A při
každém vykreslení se ti inkrementuje stav. Stav si můžeš uchovávat v
nějakém enumu, který budeš měnit podle toho, kde si zrovna zmáčkl
klávesu (WSAD).
Ok, díky moc za rady 
A mohl bych se ještě zeptat, chci udělat opravdu jednoduchou UI pro duchy,
kteří by chodili po bludišti. Napadlo mě, že pokud by došel duch na
souřadnice rozcestí v bludišti, vygenerovalo by se náhodné číslo a podle
něj by se určil směr (přes switch nebo if), kterým se duch vydá. Je to
dobré řešení, nebo existuje nějaký jiný způsob?
Myslím si, že to je dobré řešení a nedokážu si představit, že by to šlo udělat jinak, možná na to někde existuje nějaká funkce, ale ta by to stejně řešila skrze náhodná čísla.
Kdybys to chtěl udělat trochu složitěji, doporučuji přečíst tento článek: http://www.itnetwork.cz/…y-v-bludisti
Určitě by měl postačit, animaci bych nejspíš udělal pomocí timeru a kolizi asi pomocí ifů v poli...
Pár informací:
1 - Animace se tvoří pomocí spritů. jsou to samostatné obrázky, které
když zaskládáš v rychlém sledu za sebe utvoří animaci. Například http://www.freewebs.com/…0Sprites.bmp To, jak často budeš
obrázky dělat závisí na tobě (zpravidla se to řeší přes stav, ve
kterém je, jak je popsáno výše).
2 - Kolize se řeší analytickou geometrií. Pacman bude reprezentovaný
kružnicí, stěny obdelníky. Projdeš všechny stěny, zjistíš jestli se
protíná kružnice Pacmana s obdelníkem stěny a pokud ano, řekneš co se má
stát. Podobně to platí s duchy.
3 - Game loop. Jedná se prakticky o nekonečnou smyčku, ve které vlastní hra
probíhá. Skládá se ze dvou základních bloků - Update a Render (nebo
jakkoliv si je pojmenuješ). V prvním bloku aktualizuješ scénu (zachycení
vstupu od uživatele a reagování na něj, posun Pacmana a duchů, výpočet
kolizí) a ve druhém se scéna vykreslí. Takhle to jede do nekonečna. http://gameprogrammingpatterns.com/game-loop.html
4 - Pohyb duchů. Konkrétně v Pacmanovi jsou duchové individuální (každý
má vlastní AI). Více se o tom dočteš tady: http://gameinternals.com/…ost-behavior
http://programujte.com/…-man-cast-2/
Zobrazeno 8 zpráv z 8.