Dalam tutorial ini, kami akan mencipta permainan menaip mudah yang akan mengukur kelajuan menaip kami dalam wpm - perkataan seminit, aksara seminit, salah ejaan dan akan membolehkannya memperbaikinya. Kami hanya akan menggunakan javascript dan jQuery (ia tidak benar-benar diperlukan, tetapi ia akan menjadikan permainan menaip kami kurang bertele-tele supaya kami boleh menumpukan perhatian pada aplikasi yang lain.
Kami bermula dengan mencipta halaman html mudah:
<!DOCTYPE html> <html> <head> <title>Typing Test WPM: How fast can you type? ⌨️?</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <script src="js/jquery-3.2.1.slim.min.js"></script> <script src="js/typing.js"></script> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body > </body> </html>
Kemudian kita perlu melampirkan 2 lagi elemen:
var text2type = 'Some text that needs to be typed...'; function init(){ $('#txt').text( text2type ); }
<div style="position: absolute; top:0; left:0; z-index:-1;visibilitygg:hidden;"> <textarea id="textinput" style="width:0;height:0;" oninput="updateText()"></textarea> </div>
Kini kita perlu memastikan, elemen input teks sentiasa menjadi tumpuan. Mula-mula kami mengiklankan acara dalam teg boda=y yang akan menetapkan fokus kepada elemen input teks apabila klik pada badan, yang secara praktikal bermaksud di mana-mana dalam halaman:
Kami juga perlu menetapkan fokus apabila halaman dimuatkan dan sedia.
$( document ).ready(function() { $('#textinput').focus(); });
Sekarang kita perlu kod bahagian yang paling penting, kod yang mengendalikan bahagian menaip. Kodnya agak mudah, ia mempunyai 3 kaedah utama:
'use strict'; class TypingGame { constructor( text, div ) { this.text = text; this.history = ""; this.misspelled = false; this.stats = []; } add(c) { if ( c == this.text.substring( this.history.length, this.history.length + 1 ) ){ this.history += c; this.misspelled = false; } else{ this.misspelled = true; } this.render(); } render(){ let cursorstyle = 'cursor' + ( this.misspelled ? '-misstyped' : '' ); $('#txt').html( '<span class="typed">' + this.history + '</span>' + '<span class="' + cursorstyle + '">' + this.text.substring( this.history.length, this.history.length + 1 ) + '</span>' + '<span class="totype">' + this.text.substring( this.history.length + 1 ) + '</span>' ); } }
Untuk bahagian seterusnya, kita perlu mengemas kini objek penaip, apabila huruf baharu dimasukkan dalam elemen input teks(ingat kita mempunyai pendengar di sana ).
function updateText(){ let c = $('#textinput').val(); if ( c.length > 0 ) { typer.add( c.slice(-1) ); } $('#textinput').val(''); showCurrent() }
Kini kami mempunyai prototaip pertama dengan mekanik permainan permainan menaip yang berfungsi. Dalam bahagian seterusnya kita akan menambah beberapa lagi elemen untuk mengukur kelajuan menaip dalam perkataan seminit dan aksara seminit (wpm dan cpm) dan untuk memaparkan prestasi pada dialog yang bagus.
Atas ialah kandungan terperinci Buat permainan menaip dalam javascript untuk mengukur kelajuan wpm. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!