android工作室游戏速度不同的设备

jmo0nnb3  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(309)

我在安卓工作室做游戏。现在我的游戏已经完成了,但是在大屏幕上游戏的速度是不同的。。。
我用这个计时器运行游戏:

if(timer == null){
  timer = new Timer();
  timer.schedule(new TimerTask() {
    @Override
    public void run() {
      if (start_flg) {
        handler.post(new Runnable() {
          @Override
          public void run() {
            changePos();
          }
        });
      }
    }
  }, 0, 20);
}

changepos()如下所示:

public void changePos() {
SPEED_BOX =(screenHeight/280);

          long time = System.nanoTime();
          double delta_time = (double) ((time - last_time) / 1000000)/10;
          last_time = time;

          // Move Box
          if (action_flg) {
            // Touching
            boxY += SPEED_BOX*delta_time;
            box.setImageDrawable(imageBox1);
          } else {
            // Releasing
            boxY -= SPEED_BOX*delta_time;
            box.setImageDrawable(imageBox2);
          }

          // Check box position.
          if (boxY < 0) {
            boxY = 0;
            box.setImageDrawable(imageBox1);
          }
          if (frameWidth - boxSize < boxY) {
            boxY = frameWidth - boxSize;
            box.setImageDrawable(imageBox2);
          }

          box.setY(boxY);
    }

我的deltatime总是在1.5到2.9之间?
但每次我尝试不同的方式总是游戏速度是不正确的。有没有可能让我的游戏在不同的设备上运行相同的速度,不同的屏幕尺寸?

ffx8fchx

ffx8fchx1#

问题是 screenHeight 屏幕高度以像素为单位,但游戏不使用整个屏幕。这导致不同设备上的速度不同。所以屏幕高度应该改为 gamesLayout.getHeight() .

相关问题