0

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

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

谢谢你。

4

2 回答 2

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
        });
     }
}

注意 1:json 中的最后一个属性不应以逗号结尾(请参阅imageStretchToFit: true,您的代码)

注意2:您缺少world.createEntity功能的右括号

于 2013-11-12T14:05:43.080 回答
0

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

根据您给我们的描述,我发现您发布的代码令人困惑。你为什么要做所有这些检查?

一旦有更多信息,我将编辑我的答案..

还有一件事,看起来你的第一个代码块会执行如果其他两个会执行,那么为什么你甚至有“else if”语句?如果任何一种颜色是金色的,那么第一个代码块将执行,而其他代码块将永远不会执行,因为它们都需要一种或多种颜色为金色。

于 2013-11-12T14:03:55.840 回答