单击图像旁边的减少分数但停在0

时间:2014-01-25 12:18:01

标签: java

我正在构建一个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);
            }

        }
    });

我希望它很清楚。

4 个答案:

答案 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);
        }