move element with keypress (multiple)

后端 未结 3 489
北海茫月
北海茫月 2020-12-24 03:54

Diagonal move not working and issue on left-longPress/right simultaneous

But on double keypress the ship goes crazy!

$(document).bind(\'keydown\', fu         


        
3条回答
  •  天命终不由人
    2020-12-24 04:39

    about that interval,

    http://jsfiddle.net/fbFuW/21/

    var leftDown, rightDown, upDown, downDown,leftKey,upKey,rightKey,downKey;
        var box = $("#plane");
    
    function keye(e) {
        console.log(e.keyCode);
        var $key = e.keyCode;
    
        $(document).keydown(function(e) {
            if (e.keyCode == left && $key != left) leftDown = true;
            if (e.keyCode == right && $key != right) rightDown = true;
            if (e.keyCode == down && $key != down) downDown = true;
            if (e.keyCode == up && $key != up) upDown = true;
        }).keyup(function(e) {
            if (e.keyCode == left) leftDown = false;
            if (e.keyCode == right) rightDown = false;
            if (e.keyCode == down) downDown = false;
            if (e.keyCode == up) upDown = false;
        });
        if (e.keyCode == left) {
            leftKey = true;
        }
    
        if (e.keyCode == up) {
            upKey = true;
        }
        if (e.keyCode == right) {
            rightKey = true;
        }
        if (e.keyCode == down) {
            downKey = true;
        }
    
    }
    
    $("body").keydown(function(){
       keye(event); 
    });
    
    
    $("body").keyup(function(e){
           if (e.keyCode == left) {
            leftKey = false;
        }
    
        if (e.keyCode == up) {
            upKey = false;
        }
        if (e.keyCode == right) {
            rightKey = false;
        }
        if (e.keyCode == down) {
            downKey = false;
        }
    });
    
    setInterval(function() {
        if (leftDown) {
            box.css('left', '-=5');
        }
    
        if (rightDown) {
            box.css('left', '+=5');
        }
    
        if (downDown) {
            box.css('top', '+=5');
        }
    
        if (upDown) {
            box.css('top', '-=5');
        }
    
        if (upKey) {
            box.css("top", "-=5");
        }
        if (rightKey) {
            box.css("left", "+=5");
        }
        if (downKey) {
            box.css("top", "+=5");
        }
        if (leftKey) {
            box.css("left", "-=5");
        }
    
    
    },20);
    

提交回复
热议问题