Этот угол равен 60°. Затем мы вычисляем и сохраняем значения синуса и косинуса этого угла. Эти значения будут использоваться для создания других сторон треугольника. В строках 17 и 18 мы храним начальные координаты x и y линии, которую мы создаем. Координата y вычисляется нахождением координаты y нижней стены (starty + height) и вычитанием heightFromBottom, а затем снова вычитанием произвольного значения 55. (Я выбрал значение 55 потому, что, на мой взгляд, это делает вид треугольника лучше.) Координата x находится у начала левой стены (startx) и перемещается немного вправо – скажем, 20.
В строке 19 мы создаем линию, вызывая функцию createLine(). Это та же функция, что используется в Главе 5, «Обнаружение столкновений», и Главе 6, «Реакции на столкновения», для создания линий, и используется здесь для создания нескольких строк на столе пинбола. Мы ее слегка изменили, чтобы делать такие вещи, как воспроизведение звука, когда происходит удар о линию. Мы не будем рассматривать эти различия в этой главе; они просты и могут быть поняты с первого взгляда. Но давайте взглянем на параметры функции createLine() в строке 19. Ниже представлены все семь по порядку:
x—начальная координата линии x.
y—начальная координата линии y.
angle—угол под которым проходит линия (измеряется от оси x).
length—длина линии.
decay— нормализованный фактор, показывающий процент, на который будет изменяться скорость шара при столкновении. Это значение обычно находится между 0 и 1. Значение 0.5 означало бы уменьшение скорости на 50 процентов. Однако, на внутренних линиях треугольника, мы хотим сделать столкновение более драматичным, так что мы используем значение 2, которое отбивает шар со скоростью в 200 процентов относительно скорости его столкновения.
clip— это необязательный параметр для воспроизведения клипа, когда с ним сталкивается линия. Для большинства линий в этой игре этот параметр будет опущен. (Когда шар сталкивается с внутренней линией треугольника, мы хотим воспроизвести анимацию, так что мы включаем ссылку на соответствующий клип