Пропуск анимации с помощью нескольких сенсорных входов

Я пишу HTML-игру, предназначенную для планшетов, использующих greensock в качестве движка анимации и jQuery для привязки событий. Текущую сборку можно увидеть по адресу http://gregbatha.com/battleblocks/. Он работает, имея каждый блок как div, который получает событие касания и перемещается с помощью greensock.

В целом это работает хорошо, так как это два игрока, поэтому в любой момент времени два человека быстро постукивают по блокам. Когда два человека касаются друг друга за миллисекунды, анимация задерживается или пропускается. Кто-нибудь знает почему это?

Мой код обработки событий можно увидеть ниже

$('.block').bind( touchEnd, function(){
    $this = $(this);
    var thisX = $this.data('x');
    var thisY = $this.data('y');

    console.log(thisX+", "+thisY);

    var player = grid[thisY][thisX].player;

    //if this player currently hasn't selected any blocks, select this one
    if(players[player].selectedBlock == null && !$this.hasClass('group')){
        //set this block as the currently selected block
        selectBlock(thisX, thisY);

    }else{
        //otherwise react accordingly

        //if the player selected a selectable block, switch the currently selected block with this new one
        if($this.hasClass('group')){
            explodeGroup(thisX, thisY);
        }else if($this.hasClass('selectable')){
            $('.player'+player).removeClass('selected selectable');
            switchBlocks(players[player].selectedBlock.x, players[player].selectedBlock.y, thisX, thisY, function(){
                checkGroups();
            });
            players[player].selectedBlock = null;


        }else if($this.hasClass('selected')){
            //if player selects currently selected block, unselect it
            $('.player'+player).removeClass('selected selectable');
            players[player].selectedBlock = null;
        }else{
            //if the player did not select a selectable block for switching, make this new block the selected one
            $('.player'+player).removeClass('selected selectable');
            selectBlock(thisX, thisY);
        }
    }

} );

0 ответов

Другие вопросы по тегам