TOC

This article has been localized into Czech by the community.

Tvoříme počítačovou hru: SnakeWPF:
Chapter introduction:

In this article series, we're building a complete Snake game from scratch. It makes sense to start with the Introduction and then work your way through the articles one by one, to get the full understanding.

If you want to get the complete source code for the game at once, to get started modifying and learning from it right now, consider downloading all our samples!

Úvod - Počítačová hra ve WPF

Stručné shrnutí tohoto článku - budeme postupně, krok za krokem vytvářet klasickou počítačovou hru - Hada - ve frameworku WPF. Výsledek bude vypadat nějak takto:

Tvorba počítačových her je velmi častým důvodem k tomu, že se lidé (a zvláště mladí lidé) chtějí naučit programovat. Obvyklá otázka je - "Jak mám začít, a co k tomu potřebuju?" a odpověď "No, potřebuješ nějaký programovací jazyk, C++, C# nebo nějaký jiný populární. No a, když už ho umíš, nic jiného nepotřebuješ. Prostě začni vykreslováním pixelů na obrazovku a postupně dojdeš až k funkční hře."

No, ale většina lidí by pochopitelně ocenila pomocnou ruku s nízko úrovňovými problémy. Proč ručně vykreslovat každý pixel na obrazovku, když existuje knihovna či framework, který tohle zvládne jednoduše sám - a programátor se tak může soustředit na budování zábavné hry? Takovýchto frameworků existuje celá řada - a WPF je jedním z nich.

A ano, WPF není úplně typická volba pro tvorbu her - určitě se jedná spíše o framework pro tvorbu pracovních aplikací. Nicméně obsahuje spoustu prvků vhodných pro tvorbu her - a také (což je stejně důležité) mechanismů pro kreslení a ovládání oken v systému Windows.

Pokud se chystáte vytvořit jednoduchou hru, WPF může být skutečně vhodnou volbou. Alespoň vám skvěle pomůže se všemi nejzákladnějšími aspekty, jako je vytvoření okna, kreslení jednoduché oblasti pro hru atd. Pokud chcete přidat věci jako pokročilou 3D grafiku a rychle se pohybující objekty, možná budete potřebovat další pomoc od jiné knihovny/frameworku, ale pro jednoduchou hru to bude zcela postačující - například pro klasickou hru Snake!

SnakeWPF

Jako důkaz konceptu jsem se rozhodl vytvořit verzi klasické hry Snake založenou na WPF. Bude používat běžné WPF okno jako herní oblast, stejně jako běžné WPF ovládací prvky/tvary k vytvoření skutečné hratelnosti. Důvod, proč jsem si vybral Snake, je proto, že je poměrně snadné ho implementovat (není potřeba kódovat tolik logiky) a protože lze implementovat pomocí jednoduchých geometrických tvarů, jako jsou čtverce a kruhy, které lze velmi snadno použít s frameworkem WPF. Ale také proto, že je to stále opravdu zábavná hra, přes její jednoduchou povahu!

Pokud neznáte hru Snake, mohu předpokládat, že jste v pozdních 90. letech nebo na počátku 2000. let nikdy nevlastnili mobilní telefon Nokia. První verze hry Snake byla napsána a předvedena mnoho let před tím, ale stala se velkým hitem, když se Nokia rozhodla zahrnout jejich vlastní verzi do všech svých mobilních telefonů.

Hratelnost je tak jednoduchá, jak je zábavná: Pohybujete virtuálním hadem jedním směrem (vlevo, vpravo, nahoru nebo dolů) za účelem lovu jídla (někdy jablko). Když váš had sežere jablko, je spotřebováno, váš had roste a na obrazovce se objeví nové jablko. Pokud narazíte na stěny nebo na vlastní ocas hada, hra končí a musíte začít znovu. Čím více jablek sníte, tím vyšší skóre získáte, ale tím bude těžší se vyhnout kolizi s vlastním ocasem.

Existuje MNOHO variací hratelnosti - například rychlost, s jakou se váš had pohybuje, často narůstá pokaždé, když sníte jablko, což hru činí stále těžší, ale ne všechny implementace Snake toto zahrnují. Další variací jsou stěny - některé implementace vám umožní projít skrz stěnu a vyjít na opačné straně, zatímco jiné implementace hru ukončí, jakmile narazíte na stěnu.

V našem SnakeWPF jsou stěny tvrdé (had zemře, pokud do nich narazí), a rychlost se bude exponenciálně zvyšovat s každým snědeným jablkem, až do určitého bodu.

Shrnutí

V průběhu následujících několika článků budeme implementovat pěknou verzi klasické hry Snake pomocí frameworku WPF. Začneme pozadím v dalším článku a nakonec budeme mít naši první plně funkční hru založenou na WPF.

Všimněte si, že i když je toto tutoriál WPF, budeme potřebovat trochu více kódu v C# než obvykle, abychom implementovali herní logiku atd. Budu se snažit většinu z toho vysvětlit, jak budeme pokračovat, ale v případě, že potřebujete trochu více znalostí o C#, nezapomeňte, že máme v naší síti pěkný, úplný tutoriál C#!


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!