Это должно помочь вам с цветом шара;
function drawBall (x, y, r) {
ctx.beginPath();
ctx.fillStyle = "yellow";
ctx.arc(x, y, r, 0, Math.PI*2, false);
ctx.closePath();
ctx.fill(); //added
fps++;
}
function drawP1 (h) {
ctx.fillStyle = '#FF0000';
ctx.fillRect(0, h, 20, 100);
//ctx.fill(); // remove in P2 also
fps++;
return true;
};
fill () не применяется к fillRect (), последний рисует закрашенный прямоугольник, а fill () предназначен для заполнения путей.
Мало что можно улучшить с помощью простой игры в понг, но я дам несколько общих советов по производительности холста:
- вызовы fillStyle / strokeStyle дороги, избегайте переключения цветов.
- Рисование сложных фигур тоже дорого. Вы можете рисовать и использовать пиксель API для их визуализации
- попытайтесь разделить рендеринг и обработку, это даст вам пространство для улучшений
- попробуйте использовать чистый JS для игр / анимаций с высоким FPS
Как уже говорилось, очень общие советы и могут не подходить для каждого случая.