为什么子弹走错了路?

时间:2019-05-20 17:39:00

标签: javascript formula

我正在尝试制作射击游戏,而子弹走错了方向。

我试图弄乱这些公式,但是我不知道如何解决这个问题。

setInterval(function(){
    $(".bullet").each(function(i,bullet) {
        var x = parseFloat($(bullet).css("left")) + parseFloat($(bullet).attr("y"));
        var y = parseFloat($(bullet).css("top")) + parseFloat($(bullet).attr("x"));

        $(bullet).css({"top":y+"px","left":x+"px"});
    });
},20);
$(window).click(function(e) {
    var dx = (e.pageX - (x+37.5));
    var dy = (e.pageY - (y+37.5));
    var mag = Math.sqrt(dx * dx + dy * dy);
    var velX = (dx / mag) * 15;
    var velY = (dy / mag) * 15;

    $("#game").append("<div class=\"bullet\" x=\""+velX+"\" y=\""+velY+"\" age=\"0\" style=\"top:"+(parseFloat($("#user").css("top"))+37.5)+"px;left:"+(parseFloat($("#user").css("left"))+37.5)+"px;\"></div>");
});

Here's a GIF of what's happening

1 个答案:

答案 0 :(得分:0)

您将X添加到Y,将Y添加到X是一种观察:

var x = parseFloat($(bullet).css("left")) + parseFloat($(bullet).attr("x"));
var y = parseFloat($(bullet).css("top")) + parseFloat($(bullet).attr("y"));

代替

var x = parseFloat($(bullet).css("left")) + parseFloat($(bullet).attr("y"));
var y = parseFloat($(bullet).css("top")) + parseFloat($(bullet).attr("x"));