我正在尝试制作射击游戏,而子弹走错了方向。
我试图弄乱这些公式,但是我不知道如何解决这个问题。
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>");
});
答案 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"));