úterý 30. srpna 2016

Databáze dokončena

Je hotova moje databáze filmů, na které jsem dělal asi měsíc, resp. několik hodin v rámci jednoho měsíce. Voda, spoře oděné dívky a válení se pod horkým sluncem moc programátořině nesvědčí! No ale zabrat mi docela dala. Nad něčím jsem i dumal, jak to napsat, ten kód, ale díky přehlednosti kódování v Unity, kde si můžete debugovat jak se vám zachce, jsem to nakonec zvlád.

Mezitím jsem stihnul přečíst celou knížku o začátcích kódování v C# a u ní jsem zjistil, že většinu C# jsem už vlastně znal, přestože jsem kódoval v jakési mutantní verzi javascriptu Unityscript. Nejzajímavější na C# je minimální aktivita v Update, metodě, která se pouští každý frame. V databázi ji nepoužívám vůbec. Předpokládám, že u hry nějaký kód, byť minimum, v Update bude.

S filmovou databází jsem maximálně spokojený. Umí řadit filmy podle žánrů, názvů (v češtině a angličtině), mého hodnocení atd. Pracuje s obrázky, které se načtou z externího adresáře - stačí, aby se obrázek jmenoval stejně, jako film, a databáze už automaticky zobrazí, co má zobrazit. Můžu jednoduše přidávat filmy, které se okamžitě objeví v seznamu a tím pádem si je můžu hned prohlížet. Jedním tlačítkem můžu pozměnit jakoukoli informaci a okamžitě ji uložit, a zobrazit. Mám šikovné hodnocení, které funguje stejně jako na IMDb a tudíž je na tabletu radost filmy ohodnotit. Databáze rozpozná, které filmy jsem ještě neviděl - tím pádem si je můžu okamžitě vyfiltrovat.

Věřím, že ji budu využívat poměrně často. A teď se vydám na stezku, kde půjde do tuhého, kam se odváží jen tvůrci videoher.

zeal

pondělí 8. srpna 2016

Deník sólo vývojáře: díl 17

Poslední dobou mě fascinuje twitr účet Antona Kudina, ruského vývojáře, který obdobně jako já, zápasí s Unity a momentálně dělá na fantasticky vypadající chodičko-skákačce MegaSphere. Tenhle projekt mě vyloženě motivuje - Anton v každém novém updatu vždy ukáže něco, z čeho mi spadne spodní čelist těsně nad klávesnici.

Nedávno jsem přešel na C#, tudíž doufám, že mé schopnosti kodérské budou tím pádem mít vyšší účinnost a já snad získám i lepší pozici na kodérském trhu - přece jen Unityscript asi tak žádaný není a v C# uděláte i mimo Unity něco pěkného. Např. databázi. A právě tu teď dělám, resp. už dokončuji. Jde o databázi filmů, těch, které tu mám. Každý film se dá v databázi rozkliknout a zjistit všechno, co by mě mohlo zajímat. Jde i řadit podle žánrů nebo dle obsazení a podobně. Databáze je ukládána do souboru ".json" a tím chci nastínit, že tuhle vědomost nadále využiji. Dost možná i do mého dungeonního editoru zvaného Terrible dungeon. Snadno tak budu moci uložit seznam potvor, jejich pozici v dungeonu, atributy, informace o lootu, který mrtvola vyvrhne a třeba i milion dalších blbůstek. To všechno, a mnohem více, lze lehoučce uložit do externího souboru.

Pomaličku začínám uvažovat, že bych si zaplatil vývojářský účet na Google Play, kterýžto stojí 625 korun a to myslím není zase tak moc, za možnost poslat svoje výtvory do světa. Předně ale musím mít co nabídnout, a tím pádem se teď pustím do menších blbůstek, abych měl na svém účtu alespoň něco v nabídce.

zeal

čtvrtek 21. července 2016

V Unity bych rád jednou stvořil následující


V Unity bych rád jednou stvořil - a vydal - následující:

1. 2D hopsačku
2. Klasický štvorečkový dungeon
3. Upíří RPG
4. Adventuru
5. Third person sci-fi střílečku
6. Mech simulátor

Ani nemusejí mít hezkou grafiku. Stačilo by, abych se u hraní těchto svých her nedíval na hodinky. Myslím, že je to reálné - nemusí jít o velké projekty. A čím větší, tím menší pravděpodobnost, že ho dokončím a vrhnu se na další v pořadí.

Chybou je dělat něco dlouho a neustále to vylepšovat. Na hře s kódovým označením Shape Strike jsem dělal tři čtvrtě roku. Neustále jsem ji vypiplával, ehm, a při finálním testu jsem zjistil, že musím hru velmi silně zoptimalizovat, jinak si ji hráči budou raději prohlížet na pohlednicích, než ji hrát. Pak, samozřejmě, je napsaná poměrně nepřehledně a i když se říká, že žádný kód není špatný, pokud dělá to, co má dělat, v tomto případě si tím tak jistý nejsem. Moc se mi ale líbí její koncept a graficky to není katastrofa, takže ji brzo přepíšu do C# a budu doufat, že nikdo další podobnou hru nevydá - jinak by mi zkazil náladu.

Pak je tu např. moje hopsačka s robotem. Ta vypadala - troufám si říct - vcelku pěkně a nakonec jsem o její kód, i grafiku, přišel při havárii disku. Hratelnou verzi prvního levelu bych měl někde mít v .apk souboru a velmi doufám, že až ho najdu, podaří se mi její soubor nějakým způsobem otevřít a získat z něj alespoň něco. Má docela pěknou atmosféru. Je tam i útočná lebka, kterou jsem kreslil asi hodinu. Paradoxně nejhorší na celé hře je pohyb postavičky. Chůze je OK. Když ale skáče, anebo padá, zdá se mi, že to není moc přirozené. A je to tím, že jsem ji kódoval v době, kdy jsem se to teprve začínal učit.

V plánu je dokončit menší projekty, třeba i ty, které jsem vytvořil jen jako prototypy, ale z nějakého důvodu se mi pozdávají. Myslím, že má hodně smysl udělat sem tam i nějakou blbost, udělanou za dvě hodiny o víkendu ve 4 ráno, a myslím, že to bylo právě Ludum Dare, které mi zvedlo hodně sebevědomí co se týče tvorby videoher. Jasně, každý vás za vaši hrůznou destrukci na stránkách Ludum Dare pochválí, i když se jim to vlastně vůbec nelíbí - to samozřejmě vím, ale s přivřením uší se ty pochvalné komentáře tak krásně čtou.

Můj oblíbený komentář mojí "tučňačí" hry: "Epic game XD, nice art style and killing the penguins make things so satisfying"

Takže asi nějak takhle. Dělat sám na větší hře nemá smysl. Menší hry ano, středně velká ohyzdná hra také zřejmě ano - možná ji zkusím, až si budu trošku jistější v C#. Bude mít nějaký "hluboký" art styl, abych mohl tvrdit, že je to takhle schválně, a ne že nic lepšího neumím.

zeal

úterý 28. června 2016

E3XIT

Na E3 se mi nejvíc líbilo odhalení God of War pro PS4. Zaprvé to byl šok, vidět opět Kratose, o to větší byl, vidět ho s chumáčem vousů. To není náš Kratos, ale přesto to je on. Šokující, ale ne až tak, jako když na něj zařvalo herní monstrum cosi o Valhalle. Tohle bude restart série, který vlastně není restartem, protože herní tvůrci chtějí uspokojit obě skupiny naráz: skalní fandy a nové majitele Playstation. U E3 jsem ve čtyři hodiny otvíral oči dokořán, jako málokdy v tuto dobu. A tohle soustředění mi trošku kazil domácí mazlíček, který mně v onu noc E3 oknem nosil jednu myš za druhou. Vlastně jen dvě. Obě mrtvé. Ale pochvalu si zasloužil i tak.


Kdo vyhrál letos E3? Nintenďáci říkají, že to jejich. Nintendo! I když tam vlastně ani nebylo. Microsoft boys tvrdí, že (Hank) Scorpio konečně převálcuje tu dobře se prodávající PS4 mašinku. A Sony fanbojové zase jsou spokojeni s těma svýma. Finální verdikt? Tohle E3 opět vyhráli fandové videoher.

Nevěděl jsem, že Bud Spencer, kterého jsem měl vždy hodně rád - a stejně rád na něj budu vzpomínat - měl i svoji videohru. Kudos Micku the Mageovi: http://www.mickthemage.sk/2016/06/bud-spencer-1929-2016.html

Budu sem postupně uvolňovat svoje staré hry, včetně jejich grafiky i kódu, takže začínající tvořiči, můžete se velmi mírně těšit. První uvolňuji sprite tabulku k mé hře Defend the Surface. Máte svolení použít následující grafiku k nekomerčním účelům. Stačí mě napsat do titulků!


Tak to by bylo protentokrát vše, s čím jsem se tu chtěl podělit.

zeal



sobota 11. června 2016

E3 2016, za tři dny


Svátek her je pomaličku tady a já se samozřejmě začínám těšit. Bude odhalený The Last Guardian, moje možná nejočekávanější hra za několik posledních let, takže už se po všech stránkách na něj připravuji - ve skříni mám originálku konzoli PS2 a originálku Ico, kterou jsem tehdy v JRC chytře zakoupil za pouhá tři sta peněz. Letošní E3 bude asi slabší než to minulé, a to píšu jen proto, že žádná hra kalibru Fallout 4 se pokud vím na E3 neobjeví! Nebo jsem se jen špatně koukal? Počkejte - promnu si oči a uvidíme, jestli něco na Googlu spatřím v té rychlosti, aby se mi neomrzelo psaní článku.

Dá se Battlefield 1 označit za super pecku kalibru Fallout 4? Obávám se, že asi ne. Ale věřím, že jde o hru, která nakonec překvapí, pozitivně. Mass Effect Andromeda, *cough*, už vůbec nic takového, ani to prý není regulérní díl, takže co je tam dál? Ubi se představí s Watch Dogs 2, pokračováním k jedné hře, co nám všem vyrazila dech a poté ještě jednou. Nedávám jí šanci ani teď. Možná až vyjde jako hra zdarma v sekci Playstation Plus. Shadow Warrior 2 se objeví na E3. Wow! Vlastně, co to tam, budgetová střílečka bez humoru a vůbec všech ostatních ingrediencí, které legendární první díl... ale vlastně, já nevím jaký bude. Každopádně už teď to připomíná hru se syndromem Serious Sama a to není skoro vůbec dobré. Titanfall 2? Jednička mě přestala bavit asi po dvaceti hodinách, takže jednou mě Respawn Ent oklamat může, podruhé to bude jistě jen a pouze moje chyba, že naletím. Horizon: Zero Dawn od Gerily vypadá graficky možná perfektně a možná má i všech 60 FPS, ale mě to prostě nezaujalo natolik, abych nadšeně vyhlížel horizont. Zatím. Call of Duty bude taky ne?

A taky že jo.

Nekonečná série dokonce dostala příznačné jméno Nekonečno (opravdu se tak jmenuje!) a já začínám přemýšlet, zda bych přece jen neměl zkusit některý novější díl. Abych snad nebyl s herní erudovaností až moc pozadu za ostatními. Poslední, který jsem hrál byl nějaký Advanced Warfare, ale už nevím jaké číslo za názvem bylo.

Ale přece jen něco. Podle mě největší pecka letošního E3 - o které teda víme - je Detroit: Become Human a já se už teď moc, moc a moc těším na nejlépe už hra(tel)nou ukázku této peckovisticky vyhlížející nářezovosti od francouzského maestra Davida Cage. Kvůli téhle hře - podobně jako u Uncharted 4 - se vyplatí koupě PS4. Klenot se v herním průmyslu neobjevuje zase tak často, Detroit má ale všechny předpoklady se jím stát a myslím, že není skoro nikdo, kdo by tvrdil opak. Tedy při smyslech.

Budu vyhlížet na této letošní E3 titul, o kterém jsme se všichni dozvěděli již při odhalení PS4 mašinky, a její název je Deep Down. Pamatujete na skvělé video, v němž nás kdosi v temné kobce zavedl do doupěte draka Šmaka? No toho dost možná ne, ale nějakého podobného - se surným problémem pálení žáhy - ano. To už je let, co? Capcom myslím dost hlasitě vyřvával jaké to bude co nebude a nakonec není. Ale já v tento projekt stále pevně věřím, i přesto, že o něm přestaly vyprávět historky v roce 2014. Co si o něm pamatuji a možná ne úplně přesně? Mělo se v něm procházet krásným podzemím - a já jakožto kobkař, ač ne úplně letitý, jsem si správně pomlaskl - a svět měl být generovaný procedurálně (složitě řečeno), tedy náhodně (správně řečeno).

Objeví se i pár opravdu pěkných her na X-Box One - proč to nenapsat, jakožto PSkář stejně druhému táboru nemám co závidět. A... co vlastně velké N?? To se za poslední léta asi dost zmenšilo - vulgárně řečeno - a možná ani letos o sobě nenechá vědět, v duchu "Kdo nic nedělá, nic nepokazí". Cosi jsme už ale zaslechli o počinu s názvem Nintendo NeXt. "What NeXt?" asi si řekli v Nintendu a odpověď "Nothing!" už mnohé akcionáře znervóznila natolik, že N by letos už mělo vyrukovat s čímkoli, i v případně, že to cokoli nebude nic. Upřímně, Nintendo se potřebuje vrátit na scénu s konzolí, jako byla GameCube - žádný "gimmick", naopak klasický ovladač a pořádně namakané hardware, stejně jako konkurence.

Letošní E3 bude - už teď to cítím v nervech - opět o nevyspalosti druhý den. Jinak totiž ani nemá cenu E3 konzumovat. Jen a pouze živý přenos a jeho sledování v reálném čase se počítá. Takže nezapomeňte: radioaktivní Mountain Dew a tukem těžce nasáklé Doritos. A pokud nenajdete v žádném českém obchodě značku Doritos, ani jeho mexickou kopii, nevadí. Určitě se najde nějaký jiný ničitel organismu, na to mají české obchody tredmark. Proč si ničit organismus? Jsou tu Vánoce. Herní Vánoce! A jednou za rok takto ničit si tělo přece nemůže vadit.

zeal "the E3 is near"

sobota 28. května 2016

Planet Finder: 1

Je to vždy fantastický pocit, když se chystáte vlítnout do nového projektu. Ještě fantastičtější, mnohem fantastičtější, je, když jde o projekt, kterému hodně věříte, a o kterém víte, že vás bude opravdu bavit. Takový je můj nový Unity herní projekt, kterému jsem zatím dal název Planet Finder. Bude těžit ze zkušeností, které jsem získal na třech tutorial projektech pro Casual Core. A že jsem se toho naučil docela slušně a myslím, že PF nevyužije zdaleko všechno. Spíše se obávám toho, že největší zátěž nebude v MonoDevelop, protože na kódování hra myslím nebude vůbec obtížná, zátěž tak bude hlavně v grafickém editoru - a kdoví, možná zaměstnám i tablet, jelikož má elektronická propiska už na svém hrotu zachytává až podezřele nezdravě velké chuchvalce pavučiny.

Na právě probíhající tutorial na blogu tak částečně hážu symbolickou pauzu z důvodu nízkého zájmu - tolik času zase tak nemám - ale na zbytek návodu se rozhodně vykašlat nechci. Bude - jen nevím kdy. Těší mě, že se budu moci soustředit na něco mnohem zábavnějšího, než opisování kódu na blog. Planet Finder bude částečně mým vysněným projektem, a to je možná trochu nadnesené, trefí se ale každopádně žánrem, který ke mně vždy promlouval: chodička. Ta nebude, doufám, jen tak ledajaká. O mix žánrů ale nepůjde. Chtěl bych vytvořit víceméně čistou žánrovku - chtěl bych ji ale posunout někam dál, což zase zní až moc ambiciózně, než by se tomu dalo věřit. Ale uvidíme. Co z toho vyleze.

A hlavní bude, že se u tvorby musím bavit - jako tomu bylo podobně u mého dřívějšího většího projektu: Shape Strike (který mimochodem je v docela pokročilé fázi na mém disku od Western Digital - můj velký projekt předtím, na harddisku od Samsungu, bohužel shořel). Pokud shledám něco, cokoli, kus grafiky, co bude nezáživné, vyhodím to a nahradím něčím, u čeho jen při pohledu na to dám palec nahoru.

Bude to, pokud se to bude dařit, moje taková náhrada za hopsačku Kirks, na které jsem pracoval ještě v době, kdy jsem kódu v Unity zase tak nerozuměl. Dokážu si představit, že by PF mohl vyjít na tablet, i na Google Play nebo co zrovna bude nejlepší destinace, ale to je myslím teď naprosto nepodstatné - navíc, teď když vím, jak parádní je spojení gamepadu X360 a PC, myslím, že budu maximálně spokojený, když to pojede jen na PC v této parádní spolupráci s gamepadem. Bude úžasné PF hrát. A kdo ví, možná se o něm bude psát i v Levelu. Ale jen pokud se hry prodá velké množství kopií, jinak o něm nenapíšou ani řádku. A pokud ještě bude vůbec vycházet.

Žánr hry byste mohli odhadnout už z názvu. Příběh zatím žádný napsaný není. Postupuju přesně podle návodu, jak profesionálně designovat hru. Nejdřív si vyberete žánr. Vytvoříte grafiku, spoustu grafiky, více než budete potřebovat. Až potom, vlastně až úplně nakonec vymýšlíte příběh a tvoříte level design. Údajně proto, abyste u toho samého projektu vůbec vydrželi - nejméně stabilní je totiž scénář (zřejmě výjimka existuje u adventurního žánru), který se mění tak rychle, jak přicházíte s novými nápady. Konkrétní nápady ale pro PF existují, a právě kvůli nim jsem se do projektu odvážil pustit.

Jednička v podnázvu slibuje, že by na příště mohla být v podnázvu dvojka. U ní se ale neskončí. Vlastně bych byl nejradši, kdyby těchto čísel v podnázvu Planet Finder bylo co nejvíce. Snad bude o čem psát. Pokud ne, alespoň napíšu konečně svůj názor na Battlefront Star Wars, který hraji, už to bude půl roku od Vánoc!, ještě teď. Vyhlížím ale i Uncharted 4, prý už poslední dobrodružství, kromě toho filmového. Pokaždé mě svědí prst, kterým chci poklikat na myš, zrovna když se kurzor objeví nad Exe souborem XCOM 2, simulátorem xenofobní společnosti snažící se vypudit všechno nepochopitelné, co nemá dvě nohy, dvě ruce a obličej, který je podobný členů XCOM. Zřejmě již nikdy nenapíši článek mimo CC, ale neříkejme nikdy nikdy, pro jistotu.

A když už jsem nakousnul, jak mi krásně vyhovuje hrát s gamepadem na PC, musím se tu zmínit o skvělé věci: hrát retro hry s gamepadem je ještě úžasnější, než jsem si v minulosti představoval. Dnes jsem si pořádně zahrál Batmana a kdo by to byl řekl - dal jsem celou první disketu ze dvou. Věřím tomu, že moje dosové já by na mé winsedmičkové já bylo pyšné. Tak dobře jsem si zahrál, možná to mělo menší podíl na mém rozhodnutí vlítnout do projektu s tajemným názvem Planet Finder.

A teď... do grafického editoru.

zeal

pátek 27. května 2016

Teach Vision: První hra v Unity část II.

SOUBORY KE STAŽENÍ

Stáhněte si soubory s grafikou a kartičku: ZDE. Obsah rozbalte a soubory nahrajte do Unity tak, že v menu Assets zmáčknete na položku Import New Asset... Všechny naráz nepůjdou, tak se nelekněte a importujte je jeden po druhém. Při importu se v Inspektoru vždy objeví údaje, které ovlivňují chování našeho assetu. U grafiky vyberte: Texture type: Texture, Wrap mode: Repeat, Filter mode: Point, Format: Crunched.

NÁŠ DESIGN DOKUMENT

Jako první hru budeme tvořit Pexeso, které je myslím velmi jednoduché na začátek.

1. Sestrojíme kartičky s osmi odlišnými obrázky, a to znamená, že na obrazovce bude celkově šestnáct karet (viz pravidla hry Pexeso), otočených obrázkem dolů.

2. Ovládání bude skrze myš, levým tlačidlem se vyberou/otočí karty, jedna po druhé. Pokud se neshodují, otočí se zpět, v opačném případě zmizí a hráči přibude skóre.

3. Budeme mít dva herní módy: proti CPU a lokální multiplayer.

UPOZORNĚNÍ

Kratičké upozornění: Jde o můj vůbec první návod, který navíc dělám sám ve volném čase a tím pádem nemůžu zaručit jeho bezchybnost, a vlastně jej nemůžu ani (pořádně) otestovat. Byl bych tedy rád, pokud najdete nějakou chybu, abyste mi napsali do komentářů, a já ji následně opravím.

PRVNÍ KROKY

Potřebujeme si vytvořit prázdný objekt, který bude sloužit jako nositel našeho skriptu / herního manažeru: Menu > GameObject > Create Empty

V okně Hierarchy na něj dvakrát poklepeme (či jej označíme a stiskneme klávesu F2) a pojmenujeme ho jako GameManager.

Vytvořte první skript: Menu > Assets > Create > Javascript
Pojmenujte ho GameM, myší ho přetáhněte (z okna Project do okna Hierarchy) na náš herní manažer GameManager. V okně Project klikněte na náš nově vytvořený skript. Otevře se skriptovací prostředí Mono Develop.

NÁŠ PRVNÍ SKRIPT

Karty můžeme vytvořit v Unity editoru tak, že do Hierarchy vložíme pexesoKartaLow.FBX, vytvoříme nový materiál, ten dáme na objekt v okně Project a v materiálu pak vybereme texturu. Proč to ale dělat tak složitě - jednoduše, když si karty můžeme vyrobit kódem?!

Vše vymažte. Na první řádku našeho skriptu napište následující (Unity díky této knihovně bude moci vytvořit dynamické seznamy):

import System.Collections.Generic;

Vytvoříme si první proměnné:

1. Seznam karet: pole, které bude obsahovat obrázky. Díky tomuto seznamu pak později snadno přidáme nové karty. Nestačí vám osm základních kartiček? Stačí nakreslit novou a tu poté přidáte do tohoto seznamu, a již více není třeba, kód vše obstará za vás.

var kartySeznam : Texture[];

2. Materiál karet: Karty sice budou mít každá jiný obrázek, materiál bude ale zapotřebí jen jeden. Pro všechny stejný.

var kartaMaterial : Material;

3. Model karet: Odkaz na 3D model, na nějž později přidáme materiál.

var kartaMesh : Mesh;

4. Pořadí karet: Číselné odkazy na naše karty. Co číslo, to karta. Později ve funkci CreateSeznam() tato čísla zduplikujeme, aby ve hře bylo každé číslo dvakrát.

var kartaPoradi : List.<int>;
5. Vytvoříme funkci CreateSeznam(): s pomocí této funkce vytvoříme seznam, který bude obsahovat šestnáct identifikačních čísel, resp. dvakrát osm (unikátních karet je osm).
function CreateSeznam()
{
    for(var j : int =0;j<pocet/2;j++)
{
kartaPoradi.Add(j+1);
kartaPoradi.Add(j+1);
}
}

V této funkci potřebujeme naplnit pole kartaPoradi čísly 1 až 8, přičemž je potřeba mít každé číslo dvakrát. Napíšeme tedy příkaz k přidání čísla dvakrát po sobě a tento příkaz přidáme do smyčky "for", která se zopakuje tolikrát, kolik jí řekneme: "j < pocet/2".

K našim proměnným nahoře je tak potřeba ještě přidat proměnnou int pocet - počet karet na začátku hry:
var pocet : int = 16;
U funkce CreateSeznam() potřebujeme, aby se spustila na začátku našeho programu, odkaz na ni zapíšeme tedy do funkce Start().
function Start()
{
    CreateSeznam();
}

K zamíchání karet potřebujeme vytvořit další funkci, která bude vypadat následovně:

function ShuffleKarty()
{
for (var i : int = 0; i < pocet; i++)
{
     var tempKarta : int = kartaPoradi[i];
        var randomIndex : int = Random.Range(i, pocet);
        kartaPoradi[i] = kartaPoradi[randomIndex];
        kartaPoradi[randomIndex] = tempKarta;
    }
}
Odkaz na funkci opět přidáme do Startu, za CreateSeznam(). V této chvíli nám program naplní seznam kartaPoradi čísly od 1 až 8, vždy dvakrát. Funkce ShuffleKarty() tato čísla v seznamu kartaPoradi náhodně zamíchá, aby každá nová hra byla unikátní. Ve smyčce for máme dvě proměnné v privátním módu - z důvodu, že je jinde v kódu použít nepotřebujeme.

V další části již sestrojíme naše karty pomocí kódu a balíček pak umístíme na stůl obrázkem dolů. Možná stihneme i vytvořit skript, pomocí kterého se kartička po kliknutí obrátí obrázkem nahoru.

zeal