我对JavaScript非常陌生。我正在做的任务是一个简单的游戏,使用boxbox作为物理模拟器。无论如何,我有3个块,当玩家实体接触到它们时,它们会改变颜色。我想显示一条简单的结果消息(“只有一个?再试一次!”类似的事情)。但是,我不知道颜色值是否可以用作条件。这是我想出来的:
function score() {
if (gold1.color == "gold" || gold2.color == "gold" || gold3.color == "gold") {world.createEntity(result, {
shape: "square",
x:9,
y:4,
width: 3,
height: 2,
image: "only1.png",
imageStretchToFit: true, }
}
else if (gold1.color == "gold" && gold2.color == "gold" || gold2.color == "gold" && gold3.color == "gold" || gold1.color == "gold" && gold3.color == "gold") {world.createEntity(result, {
shape: "square",
width: 3,
height: 2,
x:9,
y:4,
image: "only2.png",
imageStretchToFit: true, }
}
else (gold1.color == "gold" && gold2.color == "gold" && gold3.color == "gold") {world.createEntity(result, {
shape: "square",
width: 3,
height: 2,
x:9,
y:4,
image: "only3.png",
imageStretchToFit: true, }
}
}我不确定这是一个完全错误的方法,还是仅仅是一个语法错误。请帮帮忙。
谢谢。
发布于 2013-11-12 22:03:56
您应该在浏览器中使用调试器(如果您使用的是chrome,只需按f12键)。在您发布的代码执行之前放置一个断点。您在gold1.color、gold2.color中看到了什么值?
根据你给我们的描述,我发现你发布的代码令人困惑。你为什么要做这些检查?
一旦有更多的信息,我会编辑我的答案。
还有一件事,看起来你的第一个代码块会在其他两个代码块执行的情况下执行,那么为什么你还要有"else if“语句呢?如果有任何颜色是金色,第一个代码块将执行,而其他代码块将永远不会执行,因为它们都需要一个或多个颜色为金色。
发布于 2013-11-12 22:05:43
下面是什么:
function score() {
var nrGold = 0;
if (gold1.color == "gold") {
nrGold++;
}
if (gold2.color == "gold") {
nrGold++;
}
if (gold3.color == "gold") {
nrGold++;
}
if (nrGold!==0) {
world.createEntity(result, {
shape: "square",
width: 3,
height: 2,
x:9,
y:4,
image: "only"+nrGold+".png",
imageStretchToFit: true
});
}
}note1: json中的最后一个属性不应以逗号结尾(请参阅代码中的imageStretchToFit: true, )
note2:world.createEntity函数缺少右括号
https://stackoverflow.com/questions/19931036
复制相似问题