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
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
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
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ě:
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.
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;
}
}
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
0 komentářů:
Okomentovat