gpt4 book ai didi

java - 计数器 : Counting Between 1 and 300

转载 作者:太空狗 更新时间:2023-10-29 16:33:28 25 4
gpt4 key购买 nike

我有一个计数器,我想在 1 到 300 之间计数。我使用从另一个类中的计数器获得的最终变量,然后分解该数字并在屏幕上显示正确的数字(以三张图片——个位、十位、百位)。但是,我真的很难让它正确计数。每次用户点击某个区域时,我希望计数器相应地更新。这是我正在使用的两个类:

    public class Counter {

int count = 0;

public int IncreaseOnes() {

if (count >= 0 && count < 300){
count = count++;
}
else {
count = 0;
}
return count;
}

public int DecreaseOnes() {

if (count >= 0 && count < 300){
count = count--;
}
else {
count = 0;
}
return count;
}

public int IncreaseTens() {

if (count >= 0 && count < 300){
count = count + 10;
}
else {
count = 0;
}
return count;
}
public int DecreaseTens() {

if (count >= 0 && count < 300){
count = count - 10;
}
else {
count = 0;
}
return count;
}

public int IncreaseHundreds() {

if (count >= 0 && count < 300){
count = count + 100;
}
else {
count = 0;
}
return count;
}

public int DecreaseHundreds() {

if (count >= 0 && count < 300){
count = count - 100;
}
else {
count = 0;
}
return count;
}

public int getFinalCount() {
System.out.println(count);
return count;
}

}

然后

public class TempoScreen extends Screen {
public TempoScreen(Game game) {
super(game);
}

Counter counter = new Counter();
private final int number_y = 240;
private final int number_hundreds_x = 75;
private final int number_tens_x = 195;
private final int number_ones_x = 308;

@Override
public void update(float deltaTime) {

List<TouchEvent> touchEvents = game.getInput().getTouchEvents();

int len = touchEvents.size();
for (int i = 0; i < len; i++) {
TouchEvent event = touchEvents.get(i);
if (event.type == TouchEvent.TOUCH_UP) {

if (inBounds(event, 75,138,145,205)) {
//Increase Tempo
//Upper Button Left
counter.IncreaseHundreds();

}
} if (inBounds (event, 201,141,269,205)) {
//Increase Tempo
//Upper Button Middle
counter.IncreaseTens();

} if (inBounds (event, 318,143,385,203)) {
//Increase Tempo
//Upper Button Right
counter.IncreaseOnes();

} if (inBounds (event, 75,435,142,498)) {
//Decrease Tempo
//Lower Button Left
counter.DecreaseHundreds();

} if (inBounds (event, 199,437,268,499)) {
//Decrease Tempo
//Lower Button Middle
counter.DecreaseTens();

} if (inBounds (event, 319,435,382,497)) {
//Decrease Tempo
//Lower Button Right
counter.DecreaseOnes();

} if (inBounds(event, 4,662,143,794)) {
//GO BACK TO MAINMENU
game.setScreen(new MainMenuScreen (game));
// TO SAVE WHICH ONE IT USE USE FILE IO CLASSES
} if (inBounds (event, 341,665,477,794)) {
//GO TO GAME
game.setScreen(new GameScreen (game));

}


}
}


private boolean inBounds(TouchEvent event, int x, int y, int width,
int height) {
if (event.x > x && event.x < x + width - 1 && event.y > y
&& event.y < y + height - 1)
return true;
else
return false;
}


@Override
public void paint(float deltaTime) {
Graphics g = game.getGraphics();
int finalCount = counter.getFinalCount();

g.drawImage(Assets.tempo, 0, 0);
g.drawImage(Assets.zero, number_hundreds_x, number_y); //draw 0 hundreds
g.drawImage(Assets.zero, number_tens_x, number_y); //draw 0 tens
g.drawImage(Assets.zero, number_ones_x, number_y); //draw 0 ones

int ones = finalCount % 10;
int tens = finalCount / 10 % 10;
int hundreds = finalCount / 100 % 10;

if (ones == 2) {
g.drawImage(Assets.two, number_ones_x, number_y);
}

if (ones == 3) {
g.drawImage(Assets.three, number_ones_x, number_y);
}

if (ones == 4) {
g.drawImage(Assets.four, number_ones_x, number_y);
}

if (ones == 5) {
g.drawImage(Assets.five, number_ones_x, number_y);
}

if (ones == 6) {
g.drawImage(Assets.six, number_ones_x, number_y);
}

if (ones == 7) {
g.drawImage(Assets.seven, number_ones_x, number_y);
}

if (ones == 8) {
g.drawImage(Assets.eight, number_ones_x, number_y);
}

if (ones == 9) {
g.drawImage(Assets.nine, number_ones_x, number_y);
}

if (tens == 1 && ones == 0) {
g.drawImage(Assets.one, number_tens_x, number_y);
g.drawImage(Assets.zero, number_ones_x, number_y);
}

if (tens == 2 && ones == 0) {
g.drawImage(Assets.two, number_tens_x, number_y);
g.drawImage(Assets.zero, number_ones_x, number_y);
}

if (tens == 3 && ones == 0) {
g.drawImage(Assets.three, number_tens_x, number_y);
g.drawImage(Assets.zero, number_ones_x, number_y);
}

if (tens == 4 && ones == 0) {
g.drawImage(Assets.four, number_tens_x, number_y);
g.drawImage(Assets.zero, number_ones_x, number_y);
}

if (tens == 5 && ones == 0) {
g.drawImage(Assets.five, number_tens_x, number_y);
g.drawImage(Assets.zero, number_ones_x, number_y);
}

if (tens == 6 && ones == 0) {
g.drawImage(Assets.six, number_tens_x, number_y);
g.drawImage(Assets.zero, number_ones_x, number_y);
}

if (tens == 7 && ones == 0) {
g.drawImage(Assets.seven, number_tens_x, number_y);
g.drawImage(Assets.zero, number_ones_x, number_y);
}

if (tens == 8 && ones == 0) {
g.drawImage(Assets.eight, number_tens_x, number_y);
g.drawImage(Assets.zero, number_ones_x, number_y);
}

if (tens == 9 && ones == 0) {
g.drawImage(Assets.nine, number_tens_x, number_y);
g.drawImage(Assets.zero, number_ones_x, number_y);
}

if (tens == 1) {
g.drawImage(Assets.one, number_tens_x, number_y);
}

if (tens == 2) {
g.drawImage(Assets.two, number_tens_x, number_y);
}

if (tens == 3) {
g.drawImage(Assets.three, number_tens_x, number_y);
}

if (tens == 4) {
g.drawImage(Assets.four, number_tens_x, number_y);
}

if (tens == 5) {
g.drawImage(Assets.five, number_tens_x, number_y);
}

if (tens == 6) {
g.drawImage(Assets.six, number_tens_x, number_y);
}

if (tens == 7) {
g.drawImage(Assets.seven, number_tens_x, number_y);
}

if (tens == 8) {
g.drawImage(Assets.eight, number_tens_x, number_y);
}

if (tens == 9) {
g.drawImage(Assets.nine, number_tens_x, number_y);
}

if (hundreds == 1) {
g.drawImage(Assets.one, number_hundreds_x, number_y);
}

if (hundreds == 2) {
g.drawImage(Assets.two, number_hundreds_x, number_y);
}

if (hundreds == 3) {
g.drawImage(Assets.three, number_hundreds_x, number_y);
}

}

那么我怎样才能让我的计数器正确计数呢?而且,有没有更好的方法来格式化我的代码,这样我就不用那么多 if 语句了?谢谢!

下面是屏幕的样子: Tempo Counter Screen

最佳答案

改变

public int IncreaseOnes() {
...
count = count++;
...
}

public int DecreaseOnes() {
...
count = count--;
...
}

public int IncreaseOnes() {
...
count++;
...
}

public int DecreaseOnes() {
...
count--;
...
}

检查 this有关post-pre 递增和递减运算符的更多详细信息。

关于java - 计数器 : Counting Between 1 and 300,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34214342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com