#javascript #xhtml
#javascript #xhtml
Вопрос:
Я работаю над игрой и хочу, чтобы при однократном нажатии кнопки на клавиатуре переходил к моему игровому персонажу до тех пор, пока заданное условие цикла не станет неправильным. Но теперь проблема в том, что мой персонаж прыгает одновременно с нажатием кнопки на клавиатуре.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--AnimationUsingKeyboard.html-->
<html lang="EN" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xml; charset=utf-8"/>
<title>AnimationUsingKeyboard.html</title>
<link rel="Stylesheet" type="text/css" href=""/>
<script type="text/javascript" src="AnimationUsingKeyboard.js">
//<![CDATA[
//]]>
</script>
</head>
<body onload="init()">
<h1>Animation Using Keyboard Input</h1>
<div id="outline" style="position:absolute;
width:50px;
height:50px;
top:100px;
left:5px;">
<img id="krizen" src="krizen1.png" width="50px" height="50px" alt="krizen.png"/>
</div>
<div id="output">
</div>
</body>
</html>
var imgList=new Array("krizen1.png",
"krizen2.png",
"krizen3.png",
"krizen4.png",
"krizen5.png",
"krizen6.png",
"krizen7.png",
"krizen8.png"
);
var outline;
var krizen;
var jump;
function init(){
outline=document.getElementById("outline");
krizen=document.getElementById("krizen");
document.onkeydown=keyListner;
}
function keyListner(e){
if(!e){
e=window.event;
}//end if
if(e.keyCode==38){
jump=parseInt(outline.style.top);
while(jump!=70){
outline.style.top=jump "px";
jump-=5;
}//end while
}//end if
}//end keyListner function
Комментарии:
1. Можете ли вы показать свой код? Обычно пользовательский ввод и циклы несовместимы.
2. Можете ли вы показать, что вы уже сделали?
3. будь добр, покажи свой html, приятель.. а также немного больше о javascript.
Ответ №1:
Вы могли бы попробовать установить переменную; допустим, нажата на 1, если нажата клавиша, и если она отпущена, она становится нажатой на 0, и цикл проверяет, нажата ли клавиша ===1
Комментарии:
1. Если вы хотите, чтобы цикл не прекращался, просто не добавляйте часть Pressed ===0!
2. также используйте setTimeout для анимации перехода и проверьте, нажато ли == 1, так как выполнение этого в цикле не сработает
3. Как мне нравятся комментарии? @Nikos M. Понравилось!