>  기사  >  웹 프론트엔드  >  자바스크립트 타이핑 게임 구현 code_javascript 기술

자바스크립트 타이핑 게임 구현 code_javascript 기술

WBOY
WBOY원래의
2016-05-16 18:30:411557검색

효과는 그림과 같습니다.
자바스크립트 타이핑 게임 구현 code_javascript 기술
다음은 핵심 코드입니다

코드 복사코드는 다음과 같습니다:

GAME = {
//문자를 무작위로 생성
randLetter: function() {
var arrLetter = new Array("A", " B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N" , "O", "P", "Q", "R", "S", "T", "U", "V", "W",
"X",
"Y" , "Z");
//무작위로 문자 생성
var index = Math.floor(Math.random() * 26)
return arrLetter[index],
//임의의 문자 색상
randLetterColor : function() {
var arrLetterColor = new Array("Red", "Green", "#555", "Blue", "Black")
var index = Math.floor(Math.random( ) * 4);
return arrLetterColor[index];
},
//임의의 문자 크기
randLetterSize: function() {
var arrLetterSize = new Array("12px", " 16px", "20px", "24px", "28px", "32px", "36px", "40px")
var index = Math.floor(Math.random) () * 7);
return arrLetterSize[index];
},
//DIV 생성
divCreate: function(width, height, left, top, value) {
this. 너비 = 너비;
this.height = 높이;
this.div = document.createElement("div")
this.div.style.width =
.height = 높이;
this .div.style.left =
this.div.style.top =
this.div.innerText =
this.div.style .color = this.randLetterColor();
this.div.style.fontSize = this.randLetterSize();
this.div.style.lineHeight =
this. div.style.textAlign = "center" ;
this.div.style.fontWeight = "bold";
//this.div.style.border = "단색 1px"
this.div .style.position = "relative";
document.getElementById("map").appendChild(this.div);
return this.div;
//DIV 위치
divDown: function() {
var divTop =parseInt(this.div.style.top.slice(0, -2)); //문자 사각형의 상단
var mapHeight =parseInt(document.getElementById ("map").style.height.slice(0, -2))
//disappear
if (divTop < mapHeight -parseInt(this.height) 20) {
this.div .style.top = divTop 30;
//키 값 가져오기
document.onkeydown = function() {
//키 문자가 div 값과 같은가요?
if (String.fromCharCode(event.keyCode) == GAME.div.innerText) {
document.getElementById("TextRecord").value = "올바른"
GAME.div.style.display = " none";
clearInterval(GAME.timeCreateID);
GAME.divCreate(100, 100, Math.floor(Math.random() * 300), -30, GAME.randLetter());
}
else {
document.getElementById("TextRecord ").value = "Error";
}
}
}
//최종선에 도달하면 사라집니다. , 그리고 DIV
else {
this.div.style.display = "none"
GAME.divCreate(100, 100, Math.floor(Math.random() * 300), -30, this.randLetter());
}
},
timeCreateID: null,
timeDownID: null,
START: function() {
this.divCreate(100 , 100, 200, -40, this.randLetter());
this.timeDownID = setInterval("GAME.divDown();", 1000)
document.getElementById('ButtonStart').disabled = 'disabled';
document.getElementById('ButtonStop').disabled = '';
},
STOP: function() {
if (this.timeDownID != null) {
clearInterval(this.timeDownID);
this.div.style.display = "없음";
}
document.getElementById('ButtonStart').disabled = ''document.getElementById ('ButtonStop').disabled = 'disabled';
}

}


효과 시연


Snmon은 -||| 질문을 수정했으며 질문 요구 사항은 100배 더 복잡합니다. . .
현재는 무작위로 생성된 문자만 구현되었으며, 키보드는 모니터링되었으며, 점수는 아직 계산되지 않았습니다.
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.