我正在构建一个Java游戏,它的工作方式与我想要的一样。唯一的事就是当我点击对象旁边时。得分随着1减少。但它一直在继续。
我希望此分数停在0
,而不是转到-1, -2, -3 etc.
如果我点击该对象,我会得到1
分数,当我点击该对象旁边时,我会得到-1
分数。
问题: 如何在分数达到0后停止降低分数?
这是我的分数代码:
scoreLabel.setFont(new Font("Open Sans", Font.PLAIN, 30));
scoreLabel.setForeground(Color.WHITE);
scoreLabel.setBounds(20, 455, 200, 100);
add(scoreLabel);
addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e) {
Point p = e.getPoint();
int clickX = (int)p.getX();
int clickY = (int)p.getY();
if(clickX > x && clickX < x + 100 && clickY > y && clickY < y + 100) {
score++;
scoreLabel.setText("SCORE: " + score);
}else{
score = score -1;
scoreLabel.setText("SCORE: " + score);
}
}
});
我希望它很清楚。
答案 0 :(得分:3)
只需将if
放在else
区块中。
}else{
if (score > 0){
score = score -1;
scoreLabel.setText("SCORE: " + score);
}
}
答案 1 :(得分:1)
else if(score>0){
score = score -1;
scoreLabel.setText("SCORE: " + score);
}
答案 2 :(得分:1)
在减少之前更改代码以检查分数:
if(clickX > x && clickX < x + 100 && clickY > y && clickY < y + 100) {
score++;
scoreLabel.setText("SCORE: " + score);
} else if(score != 0) {
score = score -1;
scoreLabel.setText("SCORE: " + score);
}
答案 3 :(得分:1)
使用Math.max(0,得分-1)
if(clickX > x && clickX < x + 100 && clickY > y && clickY < y + 100) {
score++;
scoreLabel.setText("SCORE: " + score);
}else{
score = Math.max(0, score -1);
scoreLabel.setText("SCORE: " + score);
}