java - 测试颜色是否相等

标签 java colors breakout

我正在 iTunes U 上完成斯坦福大学讲座中的 Breakout 作业(仍然很绿),遇到了咆哮。我正在尝试为不同颜色的积木设置一个点值,以便计算分数,但我的 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;
    }
}

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

最佳答案

Color.X.equals(c) 用于类似 c == Color.X 的 if 情况。您正在测试对象是否是同一实例,而不是它们是否被视为彼此相等。

您也可以像使用 Color.RED 一样使用 c.equals(Color.X),但是许多人更喜欢另一种方式来防止 >NullPointerException 对于 cnull 的情况。

关于java - 测试颜色是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5761117/

相关文章:

matlab - matlab 中 hsv 图像表示的范围是哪些?

javascript - 沙盒 iframe 属性不会阻止 FIrefox 中的重定向

java - 如何从请求中获取excel文件?

java - 如何在我的应用程序中添加另一种语言?

Android AvoidXferMode 绘图路径错误?

java - JList 中单行中的多种字体颜色

java - 基本 Java 图形和坐标无法正常工作

java - java中的砖 block 碰撞突破

java - 从 URL 下载 pdf 文件并将其保存在 android (java) 中的特定文件夹中

java - MySQL 中 SUM 结果的数据类型