java中的计时器:计数器卡在1

java中的计时器:计数器卡在1,java,timer,serversocket,Java,Timer,Serversocket,基本上,我会为网络游戏设置一个计时器回合,所以如果计时器达到0,回合将被分配给其他玩家。如果玩家移动时计时器仍未达到0,则计数将从10重置。我不知道我在计时时犯了什么错误 timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { counter++; if(counter % second == 0){ System.out.println("Times Up");

基本上,我会为网络游戏设置一个计时器回合,所以如果计时器达到0,回合将被分配给其他玩家。如果玩家移动时计时器仍未达到0,则计数将从10重置。我不知道我在计时时犯了什么错误

timer.scheduleAtFixedRate(new TimerTask() {
  @Override
  public void run() {
    counter++;
    if(counter % second == 0){
      System.out.println("Times Up");
      TimeOut();
    }
    if(command.startsWith("BOX1")) {
      counter=0;
      counter++;
    }
    if(command.startsWith("BOX2")) {
      counter=0;
      counter++;
    }
    if(command.startsWith("BOX3")) {
      counter=0;
      counter++;
    }
    if(command.startsWith("BOX4")) {
      counter=0;
      counter++;
    }
    if(command.startsWith("BOX5")) {
      counter=0;
      counter++;
    }
    if(command.startsWith("BOX6")) {
      counter=0;
      counter++;
    }
    if(command.startsWith("BOX7")) {
      counter=0;
      counter++;
    }
    if(command.startsWith("BOX8")) {
      counter=0;
      counter++;
    }
    if(command.startsWith("BOX9")) {
      counter=0;
      counter++;
    }
    else{
      System.out.println("Time left:" + (second - (counter %second)) );
    }
  }
}, 3000, 3000);
因此,当我的服务器接收到BOX1(客户端移动)时,计时器应该变为0并再次递增,但我的计数器一直停留在1


您发布的图像显示它被卡在
9
而不是
1
。顺便问一下,您有多少个
s?为什么你的代码不能简化为
如果(command.startsWith(“BOX”)
@ScaryWombat我有9个盒子,每个盒子都有一张图片。它停留在9,但在我的程序中,计数器的值停留在1。System.out.println(“剩余时间:”+(秒-(计数器%s));second=10难怪
计数器
卡在1,因为
计数器=0;计数器++
相当于
计数器=1在每个分支中都有这两行。