我正在尝试用 HTML/Javascript 制作一个简单的翻牌/记忆匹配游戏(比如超级马里奥兄弟 3),并且 setInterval 命令有一点问题。
这是完整代码的链接:http: //jsfiddle.net/msfZj/ 这是它的主要问题/主要逻辑:
if(click == 2) //denotes two cards being clicked
{
if(flippedArray[1].src === flippedArray[0].src) // if click 1 == click 2 then refer to function 'delayMatch' which sets click 1 and 2 cards to not be displayed
{
window.setInterval(function() { delayMatch() }, 500);
console.log("EQUAL");
}
else
{
window.setInterval(function() { delayNoMatch() }, 500); // if click 1 != click 2 then display card.png
console.log("NOT EQUAL");
}
function delayMatch() //function for matching pairs
{
flippedArray[0].style = "display:none;";
flippedArray[1].style = "display:none;";
}
function delayNoMatch() //function for non-matching pairs
{
flippedArray[0].src = "card.png";
flippedArray[1].src = "card.png";
}
click = 0; // when clicked two cards set click back to zero
}
我单击的前两张卡总是有效:但从那时起,setInterval 会以每 500 毫秒的无限循环一遍又一遍地运行该函数。
如果有人能指出我如何正确地做到这一点,我将非常感激。
非常感谢您的宝贵时间。