_width/2,2,
.tempB7,true);
72 addBumper(tempB8._x,tempB8._y,tempB8._width/2,2,
.tempB8,true);
73 addBumper(tempB9._x,tempB9._y,tempB9._width/2,2,
.tempB9,true);
74 --numBalls;
75 initializeShot();
76 }
Вначале устанавливается переменная numBalls. Она хранит количество шаров, с которыми вы начинаете игру. (Когда вы достигнете определенных значений счета, вы выиграете другие шары увеличением этой переменной.) Затем счет устанавливается в 0, поскольку, когда вы впервые начинаете игру, вы еще не заработали никаких очков. Следующие две переменные - lastScoreLevel и lastBigScoreLevel – используются для измерения относительного счета. Они начинают с 0. Всякий раз при увеличении счета (используя функцию addScore()), мы проверяем, не превышает ли значение набранных очков каждую из этих двух переменных. Если да, то мы делаем … что-то, вроде награждения дополнительными мячами или дополнительными очками. Затем, независимо от достигнутых значений переменных, мы устанавливаем эту переменную в значение текущего счета, чтобы начать считать снова. В конце концов, новый шар может даваться в награду через каждые, скажем 19,000 очков, а некоторые другие бонусы даются, скажем, каждые 2000 очков.
Следующие четыре переменные (строки 6-9), startx, starty, width, и height, определяют размеры стола. Они задают координаты верхнего-правого угла стола и, далее, ширину и высоту стола. Переменная heightFromBottom представляет собой величину пространства, которое мы хотим установить между низом стола и верхом рельсов. Эта переменная используется как относительная точка начала для добавления треугольников, рельсов и ракеток.
Теперь мы начинаем добавлять линии в памяти. В строках 11-30 мы добавляем на стол левый треугольник. Вначале мы устанавливаем переменную с именем diagLength, которая представляет собой длину стороны треугольника, которая обращена к середине стола (правая сторона). Далее мы устанавливаем diagAng, которая представляет собой угол, под которым расположена эта сторона относительно оси x