为了账号安全,请及时绑定邮箱和手机立即绑定

使用键列表器一次接受 2 个键盘输入

使用键列表器一次接受 2 个键盘输入

慕运维8079593 2022-08-17 12:28:13
public void keyPressed(KeyEvent e) {    if (e.getKeyCode() == 32){ //spacekey        if (menu.isRun == true){ //Checks if menu is active or not            if (framecount > 10){ //Prevents too many missiles                instance.player.spaceKeyPressed();                framecount = 0;            }        }        menu.isRun = true; //sets menu to inactive        if (toggle != true){//prevents reopening game after a game over            if (menu.spaceKeyPressed()){                instance.CanRun = true; //loads game                toggle = true;                menu.update();//updates menu            }        }    }    if (e.getKeyCode() == 39) instance.player.rightKeyPressed();//right key moves player right    if (e.getKeyCode() == 37) instance.player.leftKeyPressed(); //left key moves player left}这样,用户只能移动或射击,不能同时移动或射击。例如,如果用户按住向右箭头向右移动并按空格键,则用户将停止。
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

使用类级属性集合可以确定按下了哪些其他键。您必须为在迭代列表的函数中按下多个键实现逻辑。还要从函数的列表中删除该键。keyPressedkeyReleased



查看完整回答
反对 回复 2022-08-17
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

boolean keyA=false;

boolean keyD=false;


//    keys

@Override

public void keyPressed(KeyEvent e) {

    int key= e.getKeyCode();


    if(key==KeyEvent.VK_A){

        keyA=true;

    }


    if(key==KeyEvent.VK_D){

        keyD=true;

    }

}


@Override

public void keyReleased(KeyEvent e) {

    int key= e.getKeyCode();


    if(key==KeyEvent.VK_A){

        keyA=false;

    }


    if(key==KeyEvent.VK_D){

        keyD=false;

    }


//In constructor

new Thread(()->{

    while(true){

        try{Thread.sleep(10);}

        catch (InterruptedException e){}


        if(keyA)

            player.moveLeft();

        if(keyD)

            player.moveRight();

    }

}).start();

请注意,的用法使生活变得更加简单。另外,请确保线程中有 sleep(),因为如果它只是 while(true),循环中的任何内容都不会执行。KeyEvent.VK_A


查看完整回答
反对 回复 2022-08-17
  • 2 回答
  • 0 关注
  • 70 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号