我正在做 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;
}
}
如果您需要完整的代码,请告诉我。