加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 测试颜色是否相等

发布时间:2020-12-15 08:39:50 所属栏目:Java 来源:网络整理
导读:我正在从iTunes U上的斯坦福大学演讲(仍然很绿)中完成Breakout任务并陷入咆哮.我正在尝试为不同颜色的砖块设置一个点值,这样我就可以计算出一个分数但是我的if似乎不起作用.我觉得getColor()没有返回我认为的值;我创建了一个状态标签来显示它返回的内容,但我
我正在从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;
    }
}

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

解决方法

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读