Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 按键法不';球员转身(旋转)时t更新_Java_Awt_Keylistener - Fatal编程技术网

Java 按键法不';球员转身(旋转)时t更新

Java 按键法不';球员转身(旋转)时t更新,java,awt,keylistener,Java,Awt,Keylistener,我想知道如何使它,使船的头部(球员)更新的方向,船是去。目前它的工作原理如下: 玩家同时按住向上/向下箭头键和向右/向左箭头键,这会使船继续沿着其出发的同一方向前进,但这只会在船移动时绕其中心旋转。我希望这样,当玩家同时按住上/下箭头键和左/右箭头键时,它会朝玩家所面对的方向移动 这是我目前的代码: if(key == KeyEvent.VK_RIGHT) { rotateRight = true; }if(key == KeyEvent.VK_LEFT)

我想知道如何使它,使船的头部(球员)更新的方向,船是去。目前它的工作原理如下:

  • 玩家同时按住向上/向下箭头键和向右/向左箭头键,这会使船继续沿着其出发的同一方向前进,但这只会在船移动时绕其中心旋转。我希望这样,当玩家同时按住上/下箭头键和左/右箭头键时,它会朝玩家所面对的方向移动
这是我目前的代码:

     if(key == KeyEvent.VK_RIGHT) {
        rotateRight = true;
    }if(key == KeyEvent.VK_LEFT) {
        rotateLeft = true;
    }if(key == KeyEvent.VK_DOWN) {
        player.setDY(5*Math.cos(player.rotation));
        player.setDX(-5*Math.sin(player.rotation));
    }if(key == KeyEvent.VK_UP) {
        player.setDY(-5*Math.cos(player.rotation));
        player.setDX(5*Math.sin(player.rotation));
        //System.out.println("x,y: " + player.x + "," + player.y + ", Rotation: " + player.rotation + ", DX: " + player.getDX() + ", DY: " + player.getDY());
    }

我通过将上述代码更改为:

    if(key == KeyEvent.VK_RIGHT) {
        rotateRight = true;
    }if(key == KeyEvent.VK_LEFT) {
        rotateLeft = true;
    }if(key == KeyEvent.VK_DOWN) {
        down = true;
    }if(key == KeyEvent.VK_UP) {
        up = true;
    }
因此,所有这些布尔值都在播放器类中处理,而不是在KeyInput类中处理——这一定是因为播放器类每秒更新60次,而KeyInput类仅在按下键时调用(必须手动调用)