Home > Software design >  Event .key switch for a video game
Event .key switch for a video game

Time:07-17

i want to change the way my Js game works, basically the game does not recognize input whenever the language is not english with no Capital letters ( only when the event.key is equal to wasd ) how can i fix this bug ? thanks !

window.addEventListener('keydown', (event) => {
    if (!player.isDead){
        switch (event.key) {
            case 'w':
                keys.d.pressed = true;
                player.lastkey = 'd';
                break;

            case 'a':
                keys.a.pressed = true;
                player.lastkey = 'a';
                break;

            case 'w':
                if(player.position.y > 0)
                {
                    player.velocity.y = -10;
                }
                break;
            
            case ' ':
                player.Attacking();
                if(player.lastkey === 'd'){player.SwitchSprite('punch')}
                else{player.SwitchSprite('fpunch')}
                break;
        }
    }

CodePudding user response:

You should use the event.code or event.keyCode properties to stay language independent;

switch (event.code) // <- not event.key
  case "KeyW":  // <- not 'w'
   ...
  • Related