Jak upravit hodnotu časovače JavaScriptu pro hru psaní pomocí tlačítek HTML

JavaScript

Dynamické nastavení časovače pro psaní her pomocí tlačítek

Ve hře na psaní je ovládání tempa hry zásadní pro zajištění poutavého uživatelského zážitku. Jedním z důležitých faktorů je časovač, který určuje, jak dlouho musí uživatel dokončit hru nebo zadání. Tím, že uživatelům umožníte upravit herní časovač pomocí jednoduchých tlačítek HTML, jim můžete dát větší kontrolu nad jejich hrou.

Tento článek vám ukáže, jak vytvořit řešení v JavaScriptu, které umožňuje hráčům volit mezi různými nastaveními časovače pomocí tlačítek. Například výběrem tlačítka „30s“ nastavíte časovač na 30 sekund, zatímco kliknutím na tlačítko „60s“ jej změníte na 60 sekund.

Funkce JavaScript převezme hodnotu z kliknutého tlačítka a dynamicky aktualizuje jak časovač, tak název hry. Tento druh flexibility může zlepšit uživatelský zážitek, díky čemuž je hra přizpůsobitelnější a zábavnější pro různé úrovně dovedností.

Na konci této příručky budete mít plně funkční funkci nastavení časovače pomocí HTML a JavaScriptu. Probereme také, jak aktualizovat zobrazenou hodnotu časovače v názvu stránky, aby odrážela zvolené trvání časovače.

Příkaz Příklad použití
document.querySelector() Používá se k výběru prvku HTML
addEventListener() Spojí konkrétní událost (např. kliknutí) s prvkem tlačítka. V tomto kontextu se používá ke spuštění funkce changeTimer(), když uživatel klikne na tlačítko, což umožňuje dynamickou interakci s nastavením časovače.
innerText Tato vlastnost umožňuje upravit viditelný text v prvku HTML. V tomto řešení se používá k aktualizaci hodnoty časovače v nadpisu stránky po kliknutí na tlačítko.
onClick Vložený atribut obsluhy události používaný v alternativním přístupu pro připojení funkce changeTimer() přímo k události kliknutí tlačítka. To umožňuje jednodušší, méně modulární způsob dynamické aktualizace časovače.
test() Tato metoda se používá při testování jednotek s Jest. Definuje testovací případ, kdy je testovaná funkce (např. changeTimer()) vyhodnocena, aby se zajistila správná aktualizace časovače. Zajišťuje, že se kód chová podle očekávání v různých scénářích.
expect() Příkaz Jest, který kontroluje, zda skutečná hodnota (jako aktualizovaný časovač) odpovídá očekávané hodnotě. Používá se v jednotkových testech k ověření, že gameTime a document.title jsou správně aktualizovány po kliknutí na tlačítko.
toBe() Další příkaz Jest, který kontroluje přísnou rovnost. Zajistí, že po zavolání changeTimer() bude herní čas přesně takový, jaký se očekává (např. 30 000 ms po dobu 30 sekund).
getElementById() Používá se k výběru konkrétních tlačítek podle jejich ID (např. „třicet“, „šedesát“). Tato metoda je důležitá pro připojení posluchačů událostí k tlačítkům a spouštění dynamické změny časovače v reakci na interakci uživatele.

Vytváření dynamických časovačů pomocí JavaScriptu a HTML tlačítek

Výše uvedené skripty jsou navrženy tak, aby umožnily uživateli dynamicky upravovat časovač hry při psaní hry kliknutím na tlačítka HTML. Na začátku deklarujeme proměnnou , který uchovává čas v milisekundách (ve výchozím nastavení 30 sekund, pro převod na milisekundy se vynásobí 1000). Klíčová funkce spočívá v funkce, která aktualizuje hodnotu časovače na základě kliknutí na tlačítko. Tato metoda přijímá hodnotu tlačítka (např. 30, 60 nebo 90) a aktualizuje herní čas podle toho variabilní. Skript navíc aktualizuje název stránky tak, aby odrážel zvolené trvání časovače, aby bylo uživatelům jasné, kolik času mají.

Pro dynamické chování využíváme posluchače událostí, konkrétně příkaz. To umožňuje skriptu reagovat, když uživatel klikne na kterékoli z tlačítek. Každému tlačítku je přiřazeno ID a po kliknutí se spustí funkce, předání příslušné časové hodnoty. Tento přístup je užitečný pro efektivní manipulaci s více tlačítky, aniž by bylo nutné opakovat vložený JavaScript ve struktuře HTML. Skript také obsahuje záložní možnost, kde můžete použít vložené obslužné nástroje událostí jako pokud je preferována jednoduchost před modularitou.

V alternativním řešení přímo vážeme událost na tlačítka. Tato metoda provádí fungovat přímo po kliknutí na tlačítko. Je to přímý přístup, ale postrádá flexibilitu metody posluchače událostí. Jednoduchost této metody je užitečná pro menší, méně složité aplikace. Pro škálovatelnější kód však posluchače událostí nabízejí větší flexibilitu a umožňují snadnější aktualizace skriptu bez přímé úpravy struktury HTML. Obě metody mají za cíl vyřešit stejný problém, kterým je upravit časovač a dynamicky aktualizovat titul na základě výběru uživatele.

Nakonec implementujeme unit testy pomocí Jest, testovacího rámce JavaScriptu. The funkce jsou klíčové pro ověření správnosti aktualizace časovače. Testováním více scénářů, například zda se časovač upraví na 30 sekund, 60 sekund nebo 90 sekund, tyto testy jednotek zajišťují správnost skriptu. Příkazy jako a se používají k ověření, že skutečná hodnota časovače a název stránky odpovídají očekávaným výsledkům. Tato testovací fáze zajišťuje, že vaše logika časovače funguje správně v různých případech použití a poskytuje důvěru v robustnost vašeho řešení.

Změna hodnoty časovače pomocí tlačítek HTML pro hru na psaní

Front-endový přístup založený na JavaScriptu s dynamickou aktualizací času a úpravou názvu

// Solution 1: Using event listeners to change timer value dynamically
let gameTime = 30 * 1000; // Default timer set to 30 seconds
const titleElement = document.querySelector('title');
function changeTimer(value) {
    gameTime = value * 1000; // Update timer to selected value
    titleElement.innerText = value + 's'; // Update the title
}
// Attach event listeners to buttons
document.getElementById('thirty').addEventListener('click', () => changeTimer(30));
document.getElementById('sixty').addEventListener('click', () => changeTimer(60));
document.getElementById('ninety').addEventListener('click', () => changeTimer(90));
// HTML Buttons:
// <button id="thirty" type="button">30s</button>
// <button id="sixty" type="button">60s</button>
// <button id="ninety" type="button">90s</button>

Alternativní přístup: Použití funkcí Inline HTML a JavaScript

Inline JavaScript v HTML s přímým voláním funkcí po kliknutí na tlačítko

<script>
let gameTime = 30 * 1000;
function changeTimer(value) {
    gameTime = value * 1000;
    document.title = value + 's';
}
</script>
<button onClick="changeTimer(30)">30s</button>
<button onClick="changeTimer(60)">60s</button>
<button onClick="changeTimer(90)">90s</button>

Testování jednotek na změny hodnoty časovače v různých prostředích

Unit testy založené na JavaScriptu pomocí Jest pro ověření front-end prostředí

// Jest Test Cases
test('Timer should update to 30 seconds', () => {
    changeTimer(30);
    expect(gameTime).toBe(30000);
    expect(document.title).toBe('30s');
});
test('Timer should update to 60 seconds', () => {
    changeTimer(60);
    expect(gameTime).toBe(60000);
    expect(document.title).toBe('60s');
});
test('Timer should update to 90 seconds', () => {
    changeTimer(90);
    expect(gameTime).toBe(90000);
    expect(document.title).toBe('90s');
});

Vylepšení herní interakce s přizpůsobením časovače

Dalším aspektem, který je třeba vzít v úvahu při změně časovače ve hře na psaní, je celková uživatelská zkušenost a rozhraní. Kromě úpravy herního časovače pomocí tlačítek je důležité poskytnout hráčům vizuální zpětnou vazbu k vybranému časovači. Toho lze dosáhnout aktualizací dalších prvků na stránce, jako je například zobrazení odpočítávání. Po kliknutí na tlačítko pro nastavení časovače by se měl odpočítávací časovač okamžitě spustit a poskytnout uživateli zpětnou vazbu v reálném čase. To zajišťuje, že interakce je plynulá a intuitivní, díky čemuž je hra poutavější.

Chcete-li to implementovat, můžete použít JavaScript funkce. Jakmile je časovač nastaven, nastavitInterval lze použít k vytvoření odpočítávání, které každou sekundu snižuje hodnotu časovače. Když časovač dosáhne nuly, funkce může buď zastavit hru, nebo upozornit uživatele, že čas vypršel. Tato funkce v kombinaci s možností dynamicky měnit časovač pomocí tlačítek výrazně zlepšuje herní zážitek. Responzivní rozhraní je klíčem k udržení hráčů v zapojení a zpětná vazba v reálném čase je jedním ze způsobů, jak toho dosáhnout.

Dále je třeba zvážit řešení chyb. Pokud se například uživatel pokusí spustit hru bez nastavení časovače, můžete jej vyzvat zprávou, aby vybral platný čas. Začleněním ověřovacích mechanismů zajistíte, že hra bude fungovat hladce a snížíte potenciální problémy. Tento typ ověření nejen zlepšuje uživatelský zážitek, ale také přispívá ke spolehlivosti vaší hry a zajišťuje, že hráči nebudou čelit zbytečným zmatkům.

  1. Jak mohu použít vytvořit odpočet?
  2. Můžete použít nastavením na spuštění každých 1000 milisekund (1 sekunda) a pokaždé snížením hodnoty časovače. Když hodnota dosáhne nuly, můžete odpočítávání zastavit pomocí .
  3. Jaký je účel ?
  4. se používá k zastavení odpočítávání nebo jakékoli jiné opakující se akce zahájené . Je důležité zajistit, aby se odpočítávání zastavilo, když dosáhne nuly.
  5. Jak mohu dynamicky aktualizovat nadpis HTML?
  6. Použití pro nastavení textu titulku stránky. To lze aktualizovat ve vašem funkce na základě zvolené časové hodnoty.
  7. Mohu ošetřit chyby uživatele při výběru časovače?
  8. Ano, můžete přidat ověření tak, že před zahájením odpočítávání zkontrolujete, zda byla vybrána platná možnost časovače. Pokud není vybrán žádný platný čas, můžete zobrazit upozornění nebo výzvu.
  9. Jak spustím funkci po kliknutí na tlačítko?
  10. Funkci můžete k tlačítku připojit pomocí nebo přímo pomocí v prvku HTML tlačítka.

Začlenění dynamických úprav časovače do hry na psaní výrazně zlepšuje zážitek z hráče. Tím, že umožňuje uživatelům měnit časovač pomocí jednoduchých tlačítek HTML a aktualizovat herní rozhraní v reálném čase, mohou vývojáři své hry učinit interaktivnějšími a flexibilnějšími. Tento typ ovládání pomáhá přizpůsobit různé úrovně dovedností.

Použití osvědčených postupů, jako jsou posluchače událostí, zpracování chyb a testy jednotek, zajišťuje, že hra běží hladce a poskytuje spolehlivé uživatelské prostředí. Implementace těchto funkcí nejen vylepší funkčnost hry, ale také udrží hráče ve větším zapojení díky citlivým a uživatelsky přívětivým mechanismům.

  1. Podrobné informace o použití JavaScriptu pro manipulaci s DOM a zpracování událostí naleznete na Webové dokumenty MDN .
  2. Pro pochopení Žert framework a jeho implementace pro testování jednotek v JavaScriptových aplikacích.
  3. Komplexní přehled o používání addEventListener pro zpracování událostí v JavaScriptu jsou k dispozici na W3Schools.
  4. V článku je diskutován význam aktualizací v reálném čase ve webových aplikacích, včetně časovačů Smashing Magazine .