无法清除计数器?

练习贪吃蛇小游戏时,清除计时器让蛇停止运动出现bug?
function startAndPause() {
	if(pauseGameBool) {
		if(!startGameBool) {
			startGame();
			startGameBool = true;
		} else {
			continueGame();
		}
		// if(!continueGameBool && startGameBool) {
		// 	continueGame();
		// 	continueGameBool = true;
		// } 
		pauseBtn.setAttribute("src","img/begin.png");
		document.onkeydown = function(e) {
			var code = e.keyCode;
			setDirect(code);
		}
		pauseGameBool = false;
	} else {
		pauseBtn.setAttribute("src","img/pause.png");
		clearInterval(snakeMove);
		document.onkeydown = function(e) {
			e.returnValue = false;
			return false;
		}
		pauseGameBool = true;
	}
}

因为这里在startGame中设置了一个snakeMove计时器,在continueGame()中又设置了一个snakeMove计时器,所以无法清除。

下面一个demo验证:




	




	

js:

var div = document.getElementById("div");
var div2 = document.getElementById("div2");
var left = 0;

clicks();

function clicks() {

	div.onclick = function() {
		mov = setInterval(function() {
			move();
		},1000);
		continueGame();
	};

	div2.onclick = function() {
		clearInterval(mov);
	};
	
}

function continueGame() {
	mov = setInterval(function() {
		move();
	},2000);
}

function move() {
	left += 100;
	div.style.left = left + "px";
	// alert(div.style.left);
}
//联系
//贪吃蛇游戏 startAndPause()函数
//问题
//div.style.left得不到left的值
//测试结果
//14行相当于多开了一个计时器,这时候18行无法清楚计时器

记录之。

你可能感兴趣的:(无法清除计数器?)