나는 Eloquent Javascript를 사용해 일하고있다. 저는 15 장 "플랫폼 게임"의 마지막에 있습니다. 게임을 일시 중지하는 방법을 알아내는 데 어려움을 겪고 있습니다. 이 장의 끝에있는 연습의이 함수를 올바르게 호출하려면 어떻게해야합니까?
하나는이 작업을 수행하도록 요청 : 는 "가능 일시 정지 (일시 정지) 및 Esc 키를 눌러 게임을 일시 중지를 해제 할 수 있도록
이이 변화하여 수행 할 수 있습니다. runLevel 함수는 다른 키보드 이벤트 핸들러를 사용하고 Esc 키를 누를 때마다 애니메이션을 중단하거나 다시 시작합니다. " 저자는 runLevel이 runAnimation을 호출하는 방법을 재정렬하여이를 수행 할 수 있다고 말합니다.
function runLevel(level, Display, andThen) {
var display = new Display(document.body, level);
runAnimation(function(step) {
level.animate(step, arrows);
display.drawFrame(step);
if (level.isFinished()) {
display.clear();
if (andThen)
andThen(level.status);
return false;
}
});
}
내가 이렇게 기능을 수정 : 여기 는 언급 된 기능입니다
function runLevel(level, Display, andThen) {
var display = new Display(document.body, level);
var paused = false;
addEventListener("keydown", function(event){
if (event.keyCode == 27) {
paused = !paused;
}
});
if (!paused){
runAnimation(function(step) {
level.animate(step, arrows);
display.drawFrame(step);
if (level.isFinished()) {
display.clear();
if (andThen)
andThen(level.status);
return false;
}
});
}
}
그러나 게임은 내가 탈출 충돌 후에도 계속 플레이하기를 계속한다. 나는 왜 그런지 이해하지 못한다.
게임의 전체 코드는 여기에서 확인할 수 있습니다. http://eloquentjavascript.net/code/chapter/15_game.js 미리 도움을 청하십시오!
힌트 : 'runLevel' 함수가 호출 된 횟수 및 횟수? – zerkms