Ako upraviť hodnotu časovača JavaScript pre hru na písanie pomocou tlačidiel HTML

JavaScript

Dynamické nastavenie časovača pre písanie hier pomocou tlačidiel

V hre na písanie je ovládanie tempa hry rozhodujúce pre zaistenie pútavého používateľského zážitku. Jedným z dôležitých faktorov je časovač, ktorý určuje, ako dlho musí používateľ dokončiť hru alebo výzvu na písanie. Umožnením používateľom upraviť časovač hry pomocou jednoduchých tlačidiel HTML im môžete poskytnúť väčšiu kontrolu nad hrou.

Tento článok vám ukáže, ako vytvoriť riešenie v JavaScripte, ktoré umožňuje hráčom vybrať si medzi rôznymi nastaveniami časovača pomocou tlačidiel. Napríklad výber tlačidla „30s“ upraví časovač na 30 sekúnd, zatiaľ čo kliknutím na tlačidlo „60s“ ho zmeníte na 60 sekúnd.

Funkcia JavaScript prevezme hodnotu z kliknutého tlačidla a dynamicky aktualizuje časovač aj názov hry. Tento druh flexibility môže zlepšiť používateľský zážitok, vďaka čomu je hra prispôsobiteľnejšia a zábavnejšia pre rôzne úrovne zručností.

Na konci tejto príručky budete mať plne funkčnú funkciu úpravy časovača pomocou HTML a JavaScriptu. Popíšeme tiež, ako aktualizovať zobrazenú hodnotu časovača v názve stránky, aby odrážala zvolené trvanie časovača.

Príkaz Príklad použitia
document.querySelector() Používa sa na výber prvku HTML
addEventListener() Spája konkrétnu udalosť (napr. kliknutie) s prvkom tlačidla. V tomto kontexte sa používa na spustenie funkcie changeTimer(), keď používateľ klikne na tlačidlo, čo umožňuje dynamickú interakciu s nastaveniami časovača.
innerText Táto vlastnosť umožňuje úpravu viditeľného textu v prvku HTML. V tomto riešení sa používa na aktualizáciu hodnoty časovača v názve stránky po kliknutí na tlačidlo.
onClick Atribút obsluhy udalosti v riadku používaný v alternatívnom prístupe na pripojenie funkcie changeTimer() priamo k udalosti kliknutia tlačidla. To umožňuje jednoduchší, menej modulárny spôsob dynamickej aktualizácie časovača.
test() Táto metóda sa používa pri testovaní jednotiek s Jest. Definuje testovací prípad, v ktorom sa testovaná funkcia (napr. changeTimer()) vyhodnotí, aby sa zabezpečila správna aktualizácia časovača. Zabezpečuje, aby sa kód choval podľa očakávania v rôznych scenároch.
expect() Príkaz Jest, ktorý kontroluje, či sa skutočná hodnota (ako aktualizovaný časovač) zhoduje s očakávanou hodnotou. Používa sa v jednotkových testoch na overenie, že gameTime a document.title sú správne aktualizované po kliknutí na tlačidlo.
toBe() Ďalší príkaz Jest, ktorý kontroluje prísnu rovnosť. Zabezpečuje, že po zavolaní changeTimer() je herný čas presne taký, ako sa očakáva (napr. 30 000 ms počas 30 sekúnd).
getElementById() Používa sa na výber konkrétnych tlačidiel podľa ich ID (napr. „tridsať“, „šesťdesiat“). Táto metóda je dôležitá pre pripojenie poslucháčov udalostí k tlačidlám a spúšťanie dynamickej zmeny časovača v reakcii na interakciu používateľa.

Vytváranie dynamických časovačov pomocou JavaScriptu a tlačidiel HTML

Vyššie poskytnuté skripty sú navrhnuté tak, aby umožnili používateľovi dynamicky upravovať časovač hry v hre na písanie kliknutím na tlačidlá HTML. Na začiatku deklarujeme premennú , ktorá obsahuje čas v milisekundách (štandardne 30 sekúnd, vynásobením 1 000 sa prevedie na milisekundy). Kľúčová funkcia spočíva v funkcia, ktorá aktualizuje hodnotu časovača na základe kliknutia na tlačidlo. Táto metóda získa hodnotu tlačidla (napr. 30, 60 alebo 90) a aktualizuje herný čas podľa toho variabilné. Skript navyše aktualizuje názov stránky tak, aby odrážal zvolené trvanie časovača, aby bolo používateľom jasné, koľko času majú.

Pre dynamické správanie využívame poslucháčov udalostí, konkrétne príkaz. To umožňuje skriptu reagovať, keď používateľ klikne na niektoré z tlačidiel. Každému tlačidlu je priradené ID a po kliknutí sa spustí funkciu, prejdením príslušnej časovej hodnoty. Tento prístup je užitočný na efektívne spracovanie viacerých tlačidiel bez potreby opakovaného vloženého JavaScriptu v štruktúre HTML. Skript obsahuje aj záložnú možnosť, kde môžete použiť inline obslužné nástroje udalostí, ako napr ak sa uprednostňuje jednoduchosť pred modularitou.

V alternatívnom riešení priamo viažeme udalosť na tlačidlá. Táto metóda vykonáva fungovať priamo po kliknutí na tlačidlo. Je to priamy prístup, ale chýba mu flexibilita metódy poslucháča udalostí. Jednoduchosť tejto metódy je užitočná pre menšie, menej zložité aplikácie. Pre škálovateľnejší kód však poslucháči udalostí ponúkajú väčšiu flexibilitu a umožňujú jednoduchšie aktualizácie skriptu bez priamej úpravy štruktúry HTML. Obe metódy majú za cieľ vyriešiť rovnaký problém, ktorým je nastavenie časovača a dynamická aktualizácia titulu na základe výberu používateľa.

Nakoniec implementujeme unit testy pomocou Jest, testovacieho rámca JavaScriptu. The funkcie sú kľúčové na overenie správnosti aktualizácie časovača. Testovaním viacerých scenárov, napríklad či sa časovač upraví na 30 sekúnd, 60 sekúnd alebo 90 sekúnd, tieto testy jednotiek zaisťujú správnosť skriptu. Príkazy ako a sa používajú na overenie, či skutočná hodnota časovača a názov stránky zodpovedajú očakávaným výsledkom. Táto testovacia fáza zaisťuje, že vaša logika časovača funguje správne v rôznych prípadoch použitia a poskytuje dôveru v robustnosť vášho riešenia.

Zmena hodnoty časovača pomocou tlačidiel HTML pre hru na písanie

Vstupný prístup založený na JavaScripte s dynamickou aktualizáciou č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>

Alternatívny prístup: Používanie funkcií Inline HTML a JavaScript

Vložený JavaScript v HTML s priamym volaním funkcií po kliknutí na tlačidlo

<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>

Testovanie jednotiek na zmeny hodnoty časovača v rôznych prostrediach

Unit testy založené na JavaScripte s použitím Jest na overenie front-end prostredia

// 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');
});

Zlepšenie interakcie s hrou pomocou prispôsobenia časovača

Ďalším aspektom, ktorý je potrebné zvážiť pri zmene časovača v hre na písanie, je celkový používateľský zážitok a rozhranie. Okrem nastavovania herného časovača pomocou tlačidiel je dôležité poskytnúť hráčom vizuálnu spätnú väzbu k zvolenému časovaču. Dá sa to dosiahnuť aktualizáciou iných prvkov na stránke, ako je napríklad zobrazenie odpočítavania. Po kliknutí na tlačidlo na nastavenie časovača by sa malo okamžite spustiť odpočítavanie, ktoré používateľovi poskytne spätnú väzbu v reálnom čase. To zaisťuje, že interakcia je plynulá a intuitívna, vďaka čomu je hra pútavejšia.

Na implementáciu môžete použiť JavaScript funkciu. Po nastavení časovača setInterval možno použiť na vytvorenie odpočítavania, ktoré každú sekundu znižuje hodnotu časovača. Keď časovač dosiahne nulu, funkcia môže buď zastaviť hru, alebo upozorniť používateľa, že čas vypršal. Táto funkcionalita v kombinácii s možnosťou dynamicky meniť časovač pomocou tlačidiel výrazne zlepšuje herný zážitok. Responzívne rozhranie je kľúčom k udržaniu zapojenia hráčov a spätná väzba v reálnom čase je jedným zo spôsobov, ako to dosiahnuť.

Okrem toho by sa malo zvážiť riešenie chýb. Ak sa napríklad používateľ pokúsi spustiť hru bez nastavenia časovača, môžete ho vyzvať správou, aby si vybral platný čas. Začlenením overovacích mechanizmov zaistíte, že hra bude fungovať hladko a znížite potenciálne problémy. Tento typ overovania nielen zlepšuje používateľský zážitok, ale prispieva aj k spoľahlivosti vašej hry, čím zaisťuje, že hráči nebudú čeliť zbytočnému zmätku.

  1. Ako používam vytvoriť odpočítavanie?
  2. Môžete použiť nastavením tak, aby sa spúšťal každých 1000 milisekúnd (1 sekunda) a zakaždým znížením hodnoty časovača. Keď hodnota dosiahne nulu, môžete odpočítavanie zastaviť pomocou .
  3. Aký je účel ?
  4. sa používa na zastavenie odpočítavania alebo akejkoľvek inej opakujúcej sa akcie, ktorú začal . Je dôležité zabezpečiť, aby sa odpočítavanie zastavilo, keď dosiahne nulu.
  5. Ako môžem dynamicky aktualizovať nadpis HTML?
  6. Použite na nastavenie textu nadpisu stránky. Toto je možné aktualizovať v rámci vášho funkcie na základe zvolenej časovej hodnoty.
  7. Môžem zvládnuť chyby používateľov pri výbere časovača?
  8. Áno, overenie môžete pridať tak, že pred spustením odpočítavania skontrolujete, či bola vybratá platná možnosť časovača. Ak nevyberiete žiadny platný čas, môžete zobraziť upozornenie alebo výzvu.
  9. Ako spustím funkciu po kliknutí na tlačidlo?
  10. Funkciu môžete k tlačidlu pripojiť pomocou alebo priamym použitím v prvku HTML tlačidla.

Začlenenie dynamických úprav časovača do hry na písanie výrazne zlepšuje hráčsky zážitok. Umožnením používateľom meniť časovač pomocou jednoduchých tlačidiel HTML a aktualizáciou rozhrania hry v reálnom čase môžu vývojári urobiť svoje hry interaktívnejšími a flexibilnejšími. Tento typ ovládania pomáha prispôsobiť sa rôznym úrovniam zručností.

Používanie osvedčených postupov, ako sú poslucháči udalostí, spracovanie chýb a testy jednotiek, zaisťuje, že hra beží hladko a poskytuje spoľahlivé používateľské prostredie. Implementácia týchto funkcií nielenže vylepší funkčnosť hry, ale tiež udrží hráčov vo väčšej miere vďaka citlivej a užívateľsky prívetivej mechanike.

  1. Podrobné informácie o používaní JavaScriptu na manipuláciu s DOM a spracovanie udalostí nájdete na Webové dokumenty MDN .
  2. Pre pochopenie Jest framework a jeho implementácia pre testovanie jednotiek v aplikáciách JavaScript.
  3. Komplexné informácie o používaní addEventListener na spracovanie udalostí v JavaScripte sú dostupné na W3Schools.
  4. Dôležitosť aktualizácií v reálnom čase vo webových aplikáciách, vrátane časovačov, je diskutovaná v Smashing Magazine .