2011-03-03 14 views
0

問題很自我解釋。我試圖讓我的15px乘15px的立方體的水平運動基於它在我正在處理的突破遊戲中擊中我的15px乘90px槳的位置。這個想法是,當它從一個方向撞到槳的中間時,它會沿對角線向上斜向上。暫時停留一段時間,並嘗試不同的方式,但沒有任何工作。任何幫助將非常感激。謝謝!!JavaScript Breakout - 基於它撞擊槳的位置的水平運動

這是我到目前爲止有:

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

那麼你應該繼續增加在同一方向球的x座標位置爲你之前,但開始下降球y位置,而不是增加它

換句話說,如果你有一個對象:DIR = {X 1,Y:1},則測試用於與槳的碰撞,並設置dir.y = -dir.y

每frame,ball.x + = dir.x和ball.y + = dir.y

相關問題