Строка обрабатывается даже без нахождения внутри функции - PullRequest
0 голосов
/ 28 марта 2020

Я создаю игру, есть файл клавиатуры и playerOne, я создал входы, но теперь я помещаю механизм во входы для того, когда отпустить клавишу, но внутри функции есть строка, которая добавляет ключ как освобожденный в массив, который хранит ключи и их состояния (нажатие, отпускание), эта строка должна обрабатываться только тогда, когда происходит событие 'keyup', но я не знаю, почему эта строка обрабатывается, и ничего больше внутри функции обрабатывается только эта строка, как это возможно, нет логики c что происходит?

клавиатура

subject.addEventListener( 'keydown', function( occurrence ) 
{
keyboard.presseds[ occurrence.keyCode ] = true;
keyboard.releaseds[ occurrence.keyCode ] = false;

if ( keyboard.functionTrigger[ occurrence.keyCode ] && ! keyboard.triggereds[ occurrence.keyCode ] )
{
    keyboard.triggereds[ occurrence.keyCode ] = true;
    keyboard.functionTrigger[ occurrence.keyCode ] ();

}
} ) ;
subject.addEventListener( 'keyup', function( occurrence ) 
{
keyboard.presseds[ occurrence.keyCode ] = false;
keyboard.triggereds [ occurrence.keyCode ] = false;

if ( keyboard.functionRelease[ occurrence.keyCode ] )
{
    keyboard.releaseds[ occurrence.keyCode ] = true;
    keyboard.functionRelease[ occurrence.keyCode ] ();
}
} ) ;

playerOne

if (this.keyboard.pressed(K_Y)) {

    this.cmdsPO[0] = {input: 'a', time: 0, pressedTime: 0}; 

    console.log('cmds');
}
this.keyboard.functionRelease[ K_Y ] = function() {

    console.log('release');

    // THIS IS THE LINE
    playerOne.cmdsPO[0] = {input: '~a', time: 0, pressedTime: 0};
    console.log(playerOne.cmdsPO);
};

даже при нажатой клавише ввод '~ a' вставляется в массив, и ни один из console.log не запускается, только после отпускания клавиши они обрабатываются.

...