繁体   English   中英

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

[英]JavaScript Breakout - Ball horizontal motion based on where it hits the paddle

问题很自我解释。 我尝试根据我正在开发的突破游戏,将15px x 15px立方体的水平运动设置为达到15px x 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';

好了,您应该继续沿与以前相同的方向增加球的x位置,但要开始减小球的y位置,而不要增加它

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

对于每一帧,ball.x + = dir.x和ball.y + = dir.y

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM