[英]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.