问题非常自我解释。我试图让我的15px乘15px立方体的水平运动基于它击中我的15px乘90px桨来我的突破游戏我正在努力。这个想法是当它从一个方向撞到桨的中间时,它只是沿着对角线向上倾斜。现在已经坚持了一段时间并尝试不同的方式,但没有任何效果。任何帮助将非常感谢。谢谢!
这是我到目前为止所拥有的:
var left = parseInt(box.style.left);
var top = parseInt(box.style.top);
var paddleTop = parseInt(paddle.style.left) - parseInt(box.width);
var paddleBott = parseInt(paddle.style.left) + parseInt(paddle.width);
var deltaL = 3;
var deltaT = 7;
if(left + deltaL >= parseInt(view.width)){
deltaL = -deltaL;
} else if(left + deltaL <= 0){
deltaL = -deltaL;
} else if(top + deltaT >= parseInt(view.height)+8){
deltaT = 0;
deltaL = 0;
} else if(top + deltaT <= 0){
deltaT = -deltaT;
}
if(top + deltaT >= ((parseInt(view.height-19)) - parseInt(paddle.height))){
if((left >= paddleTop) && (left <= paddleBott)){
deltaL = -deltaL;
deltaT = -deltaT;
}
}
box.style.left = left + deltaL + 'px';
box.style.top = top + deltaT + 'px';
答案 0 :(得分:0)
你应该继续以与以前相同的方向增加球的x位置,但是开始减少球的位置而不是增加它
换句话说,如果你有一个对象:dir = {x:1,y:1},那么测试与桨的碰撞,并设置dir.y = -dir.y
表示每一帧,ball.x + = dir.x,ball.y + = dir.y