Нужно реализовать анимацию фейерверка - QBasic
Формулировка задачи:
Доброго времени суток всем!)
Нужно реализовать анимацию фейерверка, то бишь летит точка и,доходя до определенной точки, взрывается и разлетается на несколько точек.
Решение задачи: «Нужно реализовать анимацию фейерверка»
textual
Листинг программы
DECLARE SUB FLIP () CONST Pmax = 250 CONST PointsRazlet = 25 CONST RazletLife = 40 CONST SnaryadLife = 100 DIM Px(Pmax), Py(Pmax), Cv%(Pmax) DIM Sx(Pmax), Sy(Pmax), Life%(Pmax) DIM Stat%(Pmax) DIM Schet% ' Экран DIM SHARED Act%, Viz% Act% = 1: Viz% = 0 SCREEN 9, , Viz%, Act% WHILE INKEY$ = "" Schet% = (Schet% + 1) AND 3 IF Schet% = 0 THEN FOR i = 1 TO Pmax IF Stat%(i) = 0 THEN Stat%(i) = 1 Px(i) = 320 'RND * 320 + 160 Py(i) = 349 Cv%(i) = RND * 15 Sx(i) = (RND * 5) - 2.5 Sy(i) = -(RND * 1 + 2) Life%(i) = SnaryadLife * ((RND + 1) / 2) EXIT FOR END IF NEXT END IF CLS 2 LINE (0, 336)-(639, 349), 0, BF FOR i = 1 TO Pmax IF Stat%(i) = 1 THEN Px(i) = Px(i) + Sx(i) Py(i) = Py(i) + Sy(i) CIRCLE (Px(i), Py(i)), 1, Cv%(i) PSET (Px(i), Py(i)), Cv%(i) Life%(i) = Life%(i) - 1 IF Life%(i) = 0 THEN NeedInit% = PointsRazlet * (RND + .5) FOR k = 1 TO Pmax IF Stat%(k) = 0 THEN Stat%(k) = 2 Px(k) = Px(i) Py(k) = Py(i) Sx(k) = (RND * 5) - 2.5 Sy(k) = (RND * 5) - 2.5 Life%(k) = RazletLife * (RND + .5) Cv%(k) = RND * 14 + 1 NeedInit% = NeedInit% - 1 IF NeedInit% = 0 THEN EXIT FOR END IF NEXT Stat%(i) = 0 END IF ELSEIF Stat%(i) = 2 THEN Px(i) = Px(i) + Sx(i) Py(i) = Py(i) + Sy(i) PSET (Px(i), Py(i)), Cv%(i) Life%(i) = Life%(i) - 1 IF Life%(i) = 0 THEN Stat%(i) = 0 END IF NEXT FLIP WEND SUB FLIP SWAP Act%, Viz% SCREEN , , , Act% SCREEN , , Viz%, Act% WAIT &H3DA, 8 END SUB
Объяснение кода листинга программы
- Объявление переменных и структур данных для реализации анимации фейерверка
- Инициализация переменных и структур данных
- Ввод условия, при котором будет выполняться основной цикл анимации фейерверка
- Основной цикл анимации фейерверка, который выполняется до тех пор, пока не будет нажата клавиша
- Внутри основного цикла происходит отрисовка фейерверка и обновление его состояния
- Если состояние фейерверка достигает конца своего жизненного цикла, то происходит инициализация нового фейерверка
- Определение процедуры для обновления экрана
- Завершение программы и выход из системы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д