На каждой итерации, пока
i
меньше длины
pipe.length
будет выполняться:
1. функция
ctx.drawImage
с переданными аргументами
pipeUp, pipe[i].x, pipe[i].y
2. снова эта же функция, с другими аргументами
pipeBottom, pipe[i].x, pipe[i].y + pipeUp.height + gap
3.
pipe[i].x--
- происходит декремент, то есть уменьшение pipe[i].x на единицу
4. Идет проверка: равно ли и есть ли совпадение с типом
pipe[i].x === 125
Если условие проверки выполнено, то в конец массива pipe добавляется объект с ключем
x
, котрый равен
cvs.width
и с ключем
y
, который равен
Math.floor(Math.random() * pipeUp.height) - pipeUp.height
или
{
x: cvs.width,
y: Math.floor(Math.random() * pipeUp.height) - pipeUp.height
}