Javascript布尔混淆
Javascript Boolean Confusion
本文关键字:布尔混 Javascript 更新时间:2023-09-26
解决了这个问题,但不确定如何解决。感谢回复:)
http://jsfiddle.net/w30cfdqk/
我的布尔值(isSame
)保持为真,我不知道为什么。在这个简单的游戏中,当触发时会出现一个鬼魂,这一部分很有效。除非我离开"房间"回来,它会看起来好像鬼不在那里。只有当幽灵最初与玩家在同一房间触发时,布尔值才会在完整代码中正确注册。如果play试图离开,则重影无法重新定位,即布尔值不会与两个int相对应。
releaseGhost();
startTimer();
var isSame = "false";
var ghostLocation;
var mapLocation = 5;
function gameOver() {
if(isSame === true) {
gameMessage = "The ghost has killed you. GAME OVER!";
alert("The ghost has killed you. GAME OVER!");
document.body.innerHTML = "GAME OVER!";
}
}
//determines if 5 seconds have passed
function moveGhost() {
ghostLocation = Math.floor(Math.random()*12);
}
function startTimer() {
if(mapLocation === ghostLocation) {
isSame = true;
window.setInterval(gameOver, 5000);
} else {
isSame = false;
}
}
function releaseGhost(){
ghostLocation = Math.floor(Math.random()*12);
window.setInterval(moveGhost, 30000);
}
window.setInterval(test, 1000);
function test(){
mapLocation = Math.floor(Math.random()*12);
console.log(isSame, mapLocation, ghostLocation);
}
您对如何以及何时设置此布尔值的描述有点令人困惑。然而,在我的初始视图中,我可以看到IsSame变量尚未声明。
我只能认为,由于IsSame没有被声明为全局变量,它默认为其默认值,这是错误的。
在代码的顶部,您应该这样声明您的变量:
var isSame = false;
请注意,尽管可以在不首先声明变量的情况下使用变量,但这不是一个好的做法,并且会在不同的浏览器
您的问题在于这个函数
function startTimer() {
ghostLocation = mapLocation;
if(mapLocation === ghostLocation) {
isSame = true;
window.setInterval(gameOver, 5000);
} else {
isSame = false;
}
}
在第一行中,将mapLocation
的值指定给ghosLocation
。因此,比较mapLocation === ghosLocation
总是true
,因此总是运行行"isSame = true
",它将值true
分配给isSame
。
在这一点上,您应该重新思考您的代码,并调试您的代码。
相关文章:
- javascript中的布尔条件
- 我的django模板布尔变量是't在javascript中按预期工作
- 在javascript中否定布尔函数
- 如何从javascript/jquery中的复选框中获取布尔值
- 如何“;默认“;JavaScript中的布尔属性
- 在javascript函数的循环中设置全局布尔变量的最佳语法
- 使用“;布尔“;作为JavaScript中.filter()的参数
- 在Javascript中访问Razor布尔变量时出错
- 对Javascript感到困惑.布尔函数可以充当void函数
- 是 JavaScript 中的布尔对象
- 布尔对象上的逻辑 NOT 在 Javascript 中总是返回 false
- 带有多个布尔键的JavaScript Array.sort()
- 如何让Javascript将通过AJAX请求提取的tinyint(1)数据视为布尔值
- Javascript数组到布尔类型强制没有意义
- 为什么这个对象方法不返回布尔值Javascript
- 在时间上使用布尔逻辑(javascript)
- 布尔变量 JavaScript
- 为什么布尔()在Javascript中这么慢?
- 解析复杂的字符串表达式布尔在Javascript
- 布尔逻辑——Javascript表达式:大于x和大于y的两倍