SCREEN 12
WIDTH 80
REM Настройки движения
FREQUENCY = 25 ' Частота обновления 25 Гц
DELAY = 1 / FREQUENCY ' Задержка между кадрами
REM Начало координат
ORIGIN_X = 320
ORIGIN_Y = 240
ORIGIN_Z = 0
REM Цвета
RED_YELLOW = 14 ' Красный-желтый
BLACK = 0 ' Черный
REM Функция расстояния
DEF FN_DIST(X, Y, Z) = SQR(X^2 + Y^2 + Z^2)
REM Функция проекции
DEF FN_PROJ(X, Y, Z) = (X + Z / FN_DIST(X, Y, Z)) * 2, (Y + Z / FN_DIST(X, Y, Z)) * 2
REM Размеры таракана
BODY_VECTOR = 40
HEAD_VECTOR = 20
REM Функция отрисовки таракана
SUB DRAW_COCKROACH (X, Y, COLOR)
REM Очищаем старое положение
FOR i = X - BODY_VECTOR TO X + BODY_VECTOR
FOR j = Y - HEAD_VECTOR TO Y + HEAD_VECTOR
IF POINT(i, j) <> 0 THEN PSET (i, j), 0
NEXT j
NEXT i
REM Рисуем тело
LINE (FN_PROJ(X - BODY_VECTOR/2, Y - HEAD_VECTOR, ORIGIN_Z), _ FN_PROJ(X + BODY_VECTOR/2, Y + HEAD_VECTOR, ORIGIN_Z)), COLOR, BF
REM Голова
CIRCLE (FN_PROJ(X - BODY_VECTOR, Y, ORIGIN_Z)), _ HEAD_VECTOR / FN_DIST(X, Y, ORIGIN_Z), COLOR,,, 1
REM Усы и лапки (код опущен для краткости)
END SUB
REM Основной цикл движения
FOR STEP = 1 TO 100 ' Количество шагов
CLS ' Очищаем экран
REM Текущая позиция
CURRENT_X = ORIGIN_X + STEP * 5
CURRENT_Y = ORIGIN_Y
REM Чередуем цвета
IF STEP MOD 2 = 0 THEN
DRAW_COCKROACH CURRENT_X, CURRENT_Y, RED_YELLOW ELSE
DRAW_COCKROACH CURRENT_X, CURRENT_Y, BLACK
END IF
REM Задержка
FOR t = 1 TO DELAY * 1000
NEXT t
NEXT STEP
END
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев