实体颜色作为if语句条件

时间:2013-11-12 13:53:35

标签: javascript if-statement colors conditional-statements

我是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, }
        }
}

我不确定这是一种完全错误的方法还是仅仅是语法错误。请帮忙。

谢谢。

2 个答案:

答案 0 :(得分:0)

您应该在浏览器中使用调试器(如果您使用的是Chrome,只需按f12键)。在您发布的代码执行之前放置一个断点。你在gold1.color,gold2.color中看到了什么价值?

根据您提供的说明,我发现您发布的代码令人困惑。你为什么要做所有这些检查?

一旦有更多信息,我就会编辑我的答案。

另外一件事,看起来你的第一个代码块会执行,如果其他两个代码块都会执行,那你为什么还要使用“else if”语句呢?如果任何颜色是黄金,第一个代码块将执行,其他代码块不会执行,因为它们都需要一个或多个颜色为黄金。

答案 1 :(得分:0)

怎么样:

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,

注意2:您缺少world.createEntity功能

的结束括号