動画内でのパドルとボールの衝突判定のコード(以下)
this.checkCollision = function(paddle) {
if ((this.y + this.r > paddle.y && this.y + this.r < paddle.y + paddle.h) &&
(this.x > paddle.x - paddle.w / 2 && this.x < paddle.x + paddle.w / 2)) {
this.vy *= -1;
}
}
意味は分かるのですが、if文の中の最初の()を
if ((this.y + this.r === paddle.y)
としてはダメなのでしょうか?(接触の瞬間)
実際に書き換えてみると、衝突が起こらずにボールがパドルを素通りしてしまいます。
なぜボールが反転しないのでしょうか。
ボールの移動速度に判定計算が間に合わないのでしょうか?
ご教示よろしくお願いします。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?