2017-06-04 6 views
-5

Ich mache gerade einen Breakout-Klon und es ist fast vollständig spielbar, aber ich stoße auf ein Problem mit dem Ball: Wenn der Ball den Boden der Leinwand berührt, sollte er normalerweise in seine Ausgangsposition zurückkehren , aber in meinem Fall springt es immer wieder auf den Boden. Hier ist ein Teil des Kollisionscodes. Sie können den gesamten Code auf Codepen sehen.Breakout Clone Lebt Bug

else if(y + dy > canvas.height - ballRadius) { 
    if(x > paddleX && x < paddleX + paddleWidth) { 
     dy = -dy; 
    } 
    else { 
     lives--; 
     if(!lives) { 
      alert("GAME OVER!"); 
      window.location.reload(true); 
     } 
     else { 
      x = canvas.width/2; 
      y = canvas.height - 30; 
      dx = 2; 
      dx = -2; 
     } 
    } 

}

Antwort

1

Sie haben einen Tippfehler in dem Code, der die Position und die Richtung des Balles zurücksetzt. Sollte sein:

{ 
    x = canvas.width/2; 
    y = canvas.height - 30; 
    dx = 2; 
    dy = -2; 
}