У меня возникают проблемы с тем, чтобы мяч распознал толщину лопастей (по одному на каждой стороне холста), поэтому в настоящее время, когда мяч попадает на лопасть, он проходит через него (хотя мяч реагирует на присутствиевесло) и отскакивает от края холста, а не от передней части весла.
Переменные весла, константы и размеры весла
var paddle1Y = 250;
var paddle2Y = 250;
const PADDLE_THICKNESS = 10;
const PADDLE_HEIGHT = 100;
// this is left player paddle
colorRect(0,paddle1Y,PADDLE_THICKNESS,PADDLE_HEIGHT,'red');
// this is right computer paddle
colorRect(canvas.width-PADDLE_THICKNESS,paddle2Y,PADDLE_THICKNESS,PADDLE_HEIGHT,'red');
// next line draws the ball
colorCircle(ballX, ballY, 10, 'white');
canvasContext.fillText(player1Score, 100, 100);
canvasContext.fillText(player2Score, canvas.width-100, 100);
}
Мяч, реагирующий на весла
computerMovement();
ballX = ballX + ballSpeedX;
ballY = ballY + ballSpeedY;
if(ballX < 0 - PADDLE_THICKNESS) {
if(ballY > paddle1Y &&
ballY < paddle1Y+PADDLE_HEIGHT) {
ballSpeedX = -ballSpeedX;
var deltaY = ballY
-(paddle1Y+PADDLE_HEIGHT/2);
ballSpeedY = deltaY * 0.35;
} else {
player2Score++; // must be BEFORE ballReset()
ballReset();
}
}
if(ballX > canvas.width + PADDLE_THICKNESS) {
if(ballY > paddle2Y &&
ballY < paddle2Y+PADDLE_HEIGHT) {
ballSpeedX = -ballSpeedX;
var deltaY = ballY
-(paddle2Y+PADDLE_HEIGHT/2);
ballSpeedY = deltaY * 0.35;
} else {
player1Score++; // must be BEFORE ballReset()
ballReset();
}
}
Так что в основном мне нужно положение X мяча (ballX) чтобы он отскакивал от лопастей с обеих сторон, а не от края холста, прежде чем отскочить назад.Любые идеи, что нужно добавить, чтобы мяч учитывал толщину лопасти?Спасибо.