测试颜色是否相等

我正在从iTunes U上的斯坦福大学演讲(仍然很绿)中完成突破任务,并陷入了咆哮。 我正在尝试为不同颜色的砖块设置一个点值,这样我就可以计算出一个分数但是我的if似乎不起作用。 我觉得getColor()没有返回我认为的值; 我创建了一个状态标签来显示它返回的内容,但我仍然无法弄清楚如何测试它。 很可能这是一件简单的事情,我很遗憾或者还不知道。

这是我正在研究的一小部分内容:

if (collider != null && collider != paddle) { remove(scoreLabel); vy = -vy; Color brickColor = collider.getColor(); add(new GLabel("" + collider.getColor(), 10, 12)); double temp = brickVal(brickColor) * scoreMultiplier; score += Math.abs(temp); addScoreboard(); remove(collider); } } private double brickVal(Color c) { if (c.equals(Color.RED)) { return 10.0; } else if (c == Color.ORANGE) { return brickVal = 8.0; } else if (c == Color.YELLOW) { return brickVal = 6.0; } else if (c == Color.GREEN) { return brickVal = 4.0; } else if (Color.CYAN.equals(c)) { return brickVal = 2.0; } else if (c == Color.MAGENTA) { return brickVal = 1.0; } else { return 1.0; } } 

如果您需要完整的代码,请告诉我。

对于像c == Color.X这样的if情况,请使用Color.X.equals(c) 。 您正在测试对象是否是相同的实例,而不是它们被认为是彼此相等的。

您也可以像使用c.equals(Color.X)一样使用c.equals(Color.X) ,但是对于cnull情况,许多人更喜欢使用其他方法来防止NullPointerException