skip to Main Content

I’m currently tasked with creating a 2 player html soccer game, I’ve searched for some codes to understand more and found a code that uses keyCode which is apparently deprecated now. I’m still new here and am currently a college student so I don’t know much.

here is the part of the code

document.onkeyup = function(e){
    if(e.keyCode === 87){
        wDown = false;
    }
    if(e.keyCode === 65){
        aDown = false;
    }
    if(e.keyCode === 68){
        dDown = false;
    }
    if(e.keyCode === 83){
        sDown = false;
    }
    if(e.keyCode === 38){
        upDown = false;
    }
    if(e.keyCode === 37){
        leftDown = false;
    }
    if(e.keyCode === 40){
        downDown = false;
    }
    if(e.keyCode === 39){
        rightDown = false;
    }
}

document.onkeydown = function(e){
    if(e.keyCode === 87){
        wDown = true;
    }
    if(e.keyCode === 65){
        aDown = true;
    }
    if(e.keyCode === 68){
        dDown = true;
    }
    if(e.keyCode === 83){
        sDown = true;
    }
    if(e.keyCode === 38){
        upDown = true;
    }
    if(e.keyCode === 37){
        leftDown = true;
    }
    if(e.keyCode === 40){
        downDown = true;
    }
    if(e.keyCode === 39){
        rightDown = true;
    }
}

I just want help man

2

Answers


  1. You can also actual characters instead of using the codes. Something like:

    document.onkeyup = function(event) 
    {
        if (event.key === 'w') {
            wDown = false;
        }
    };
    
    Login or Signup to reply.
  2. You can use .key instead. I have refactored your code to use it as well as changed it to use switch-case instead of if conditions.

    let wDown = false,
        aDown = false,
        dDown = false,
        sDown = false,
        upDown = false,
        leftDown = false,
        downDown = false,
        rightDown = false;
    document.onkeyup = function(e){
        switch (e.key) {
            case 'w': {
                wDown = false;
            } break;
            case 'a': {
                aDown = false;
            } break;
            case 'd': {
                dDown = false;
            } break;
            case 's': {
                sDown = false;
            } break;
            case 'ArrowUp': {
                upDown = false;
            } break;
            case 'ArrowLeft': {
                leftDown = false;
            } break;
            case 'ArrowDown': {
                downDown = false;
            } break;
            case 'ArrowRight': {
                rightDown = false;
            } break;
        }
        console.log({wDown, aDown, sDown, dDown, upDown, leftDown, downDown, rightDown});
    }
    
    document.onkeydown = function(e){
        switch (e.key) {
            case 'w': {
                wDown = true;
            } break;
            case 'a': {
                aDown = true;
            } break;
            case 'd': {
                dDown = true;
            } break;
            case 's': {
                sDown = true;
            } break;
            case 'ArrowUp': {
                upDown = true;
            } break;
            case 'ArrowLeft': {
                leftDown = true;
            } break;
            case 'ArrowDown': {
                downDown = true;
            } break;
            case 'ArrowRight': {
                rightDown = true;
            } break;
        }
        console.log({wDown, aDown, sDown, dDown, upDown, leftDown, downDown, rightDown});
    }
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search