рмування фрагмента рядка для оператора DRAW. END SUB
RAKETA (d $, x, y, ang $, ar, xc, yc, r, st)
малюнок об'єкту RAKETA
PRESET (x, y)
фіксація точки початку малювання
figpnt $=«сЗ» + Ang $ + d $ + «p5, 3 b15»
формування рядка малюнка (рядок зібрана з символу кольору 3, кута розвороту, макета рисунка, символів внутрішньої забарвлення)
DRAW figpnt $
малювання фігури об'єкта RAKETA
PRESET (x, y)
вторинна фіксація початкової точки (необхідна, так як остання точка малюнка може не збігтися з початковою точкою - а від неї розраховуються координати нового положення фігури)
FOR i=l TO 30000: NEXT i
уповільнюючий цикл дозволяє затримати зображення об'єкта на час, необхідний для ока, перед тим, як стерти його
figdel $=«С0» + D $ + «р0, 0 b15»
формування рядка оператора DRAW для стирання фігури об'єкта (малювання кольором фону - при вказівці кольору нуль оператор DRAW сприймає колір фону, яким би він не був призначений в операторі COLOR)
DRAW figdel $
стирання об'єкта RAKETA
PRESET (x, у)
повернення початкової точки dar=1.27
кут в радіанах, необхідний для розрахунку координат контактної точки (хс, ус) (ця точка знаходиться прямо по курсу об'єкта перед ним на близькій відстані - зроблено це з тієї причини, що точка з координатами (х, у) знаходиться в хвості і незручно по ній фіксувати контакт)
хс=х + r * COS (ar + dar): ус=у + r * SIN (ar + dar)
розрахунок координат хс і ус
PSET (х, у) ставиться крапка білим кольором, яка не стирається і зображує шлейф від руху об'єкта
IF st> 0 THEN DRAW figpnt $
відновлення малюнка об'єкта, який у момент контакту виявляється стертим. END SUB
Sputnik (xl, yl, st, do $, angl $)
малюнок об'єкту Sputnik
IF st=0 THEN (xl, yl)
фіксація початкової точки малювання
figpnt $=«з12» + Angl $ + do $ + «p14, 12 b15»
формування рядка оператора DRAW з забарвленням і заданим кутом розвороту
DRAW figpnt $
малювання фігури об'єкта Sputnik PRESET (xl.yl), повернення початкової точки
OR i=1 ТО 30000: NEXT i
уповільнюючий цикл для фіксації об'єкта на екрані
figdel $=«С0» + Do $ + «р0, 0 b15»
формування рядка стирання об'єкта Sputnik
DRAW figdel $
стирання об'єкта Sputnik
PRESET (xl, yl)
повернення початкової точки (якщо її не повертати, то може з'явитися ефект розмазування фігури об'єкта)...