JavaScript Breakout - 基于击中桨的位置的球水平运动

时间:2011-03-03 02:50:10

标签: javascript

问题非常自我解释。我试图让我的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';

1 个答案:

答案 0 :(得分:0)

你应该继续以与以前相同的方向增加球的x位置,但是开始减少球的位置而不是增加它

换句话说,如果你有一个对象:dir = {x:1,y:1},那么测试与桨的碰撞,并设置dir.y = -dir.y

表示每一帧,ball.x + = dir.x,ball.y + = dir.y