Skóre budeme ukládat do globální proměnné a následně zobrazovat v textovém poli.
Nejprve musíme vytvořit globální proměnnou skore. V událestech je třeba kliknout vpravo na + Přidat … a vybrat Přidat globální proměnnou
Proměnná je typo číslo:
Nyní vytvoříme na ploše objekt Text, kde se bude proměnná zobrazovat:
U Textu můžeme zvětšit písmo, a nastavit hodnotu 0.
Nyní to nejdůležitější – funkce, která přičítá nebo odečítá skóre a aktualizuje hodnotu viditelného textu. Použijeme funkci, kterou pak voláme z různých míst našich her. Funkce bude mít vstupní parametr s hodnotou, o kterou chceme skóre změnit.
Obecně: ZmenSkore(x)
Příklady:
ZmenSkore(1) : zvětší skóre o 1 bod
ZmenSkore(50) : zvětší skóre o 50 bodů
ZmenSkore(-1) : zmenší skóre o 1 bod
Funkci přidáme opět na listu událostí vpravo tlačítkem + Přidat …
Nyní přidáme parametr x
Do funkce poté v událostech přidáme akci (+ Přidat akci): Přičíst do proměnné
Do globální proměnné skore budeme přičítat hodnotu x:
Poté aktualizujeme zobrazený text na ploše s hodnotou aktuálního skóre. Přidáme akci, která u Text Skore nastaví text:
Výsledná funkce by měla vypadat takto:
Nyní už stačí funkci zavolat na místě, kde potřebujeme. V našem příkladu mužeme např. šipkou nahoru přičítat 10 a šipkou dolu odečítat 5. Na událost tedy přidáme akci Funkce:
Výsledný kód vypadá takto:
Pokud vše dobře funguje, skóre by se mělo na ploše zobrazovat a měnit:
Cheme-li na konci hry uložit nejvyšší skóre a zobrazovat ho v příští hře i vypnutí a novém otevření hry, potřebujeme hodnotu uložit do tzv. Lokálního úložiště. Je třeba přidat do projektu objekt LocaStorage:
Hodnoty jsou do úložiště ukládány stylem klič -> hodnota (key -> value). Např.:
Klíč
Hodnota
skore
1500
Pro uložení hodnoty skóre použijeme akci:
Do hodnoty dáme proměnnou se skóre, nebo hodnotu textového pole se zobrazením skóre:
Načtení položky při další hře probíhá následovně. Nejprve je potřeba hodnotu načíst pomocí této akce (např. při startu plochy, nebo při jiné události):
Jedná se o hru proslavenou z televizního pořadu z konce 80. a začátku 90. let. Demo hry pro inspiraci je ke zhlédnutí zde: https://krouzek.epavel.eu/videostop/
Hráč mezerníkem zastavuje otáčení kostek a pokud se trefí, započtou se mu body. Pokud se netrefí, body se odečtou. Hráč má 10 pokusů.
Stačí umístit 3 kostky na hrací plochu (v mém demu v rozlišení 720 x 1280 (720p landscape).
Zde jsou už přidány texty na skóre a počet pokusů.
Každá kostka má 6 animací, každá animace znázorňuje jedno číslo.
Pro náhodný výběr animace lze použít funkci vybrat() / choose() viz obrázek.
Již tento kód by měl stačit na zobrazování měnicích se kostek, doporučuju to po tomto kroku otestovat.
Aby měl hráč po stisknutí mezerníku odezvu, že se něco stalo, přidal jsem kostkám efekt změny barvy (na objektech kostek je třeba přidat Efekt – ReplaceColor, nahrazujeme bílou za jinou barvu a dáme toleranci 100% pro vyhlazení přechodu barvy:
Nyní je možné začít počítat skóre. Kód na počítání skóre zohleňuje rozdíl mezi trefou na 2 stejné kostky a 3 stejné. 3 jsou za více bodů.
Vyhodnocení jednotlivých situací je řešeno if-else podmínkou:
Pokud jsou 3 stejné -> NastavSkore(100)
jinak – pokud je první a druhá kostka (K1 = K2) stejná -> NastavSkore(10)
jinak – pokud je první a třetí kostka (K1 = K3) stejná -> NastavSkore(10)
jinak – pokud je druhá a třetí kostka (K2 = K3) stejná -> NastavSkore(10)
jinak -> odečti skóre: NastavSkore(-50)
Zde jsou ofocené použité proměnné, funkce a start plochy:
Aby byl a hra zábavnější, je možné přidat jednou za čas 3 stejné kostky:
Nebo ještě odvážnější můžou nahradit kostky obrázky: