Subscribe to Feeds Subscribe to Tweeters
30 Янв

QUICK BASIC 4.5. Программирование движения фигур на экране.

Freesmska -> Уроки -> QUICK BASIC 4.5. Программирование движения фигур на экране.
Будь в курсе. Подпишись по e-mail:       

Программирование движения фигур на экране.

Пусть на экране изображена некоторая фигура, границы которой по горизонтали обозначим через x1 и x2, а по вертикали — через y1 и y2. Тогда при наличии оператора WINDOW точка (x1,y1) является левой нижней вершиной ограничивающего фигуру прямоугольника, а точка (x2, y2) – его правой верхней вершиной. Имеется пара операторов GET и PUT, которые можно использовать для перемещения фигуры по экрану.

Оператор GET (взять) считывает изображение фигуры в некоторый массив. Формат оператора следующий: GET STEP (x1,y1) – (x2,y2), M. Здесь M – имя массива.

Оператор PUT (положить) выкладывает изображение в заданное место экрана. Формат оператора следующий: PUT STEP (x,y),M,A.

Здесь обозначено:

(x,y) – новые координаты левой нижней вершины прямоугольника, ограничивающего фигуру.
A – так называемое действие, которое может иметь одно из указанных ниже значений.
PSET – натуральное изображение фигуры.
PRESET – негативное изображение.
AND – наложение изображения на существующую картинку.
OR – сохранение старого изображения.
XOR – изображение без стирания фона.

Следует отметить, что действие PSET должно стирать старое изображение фигуры. Однако при некоторых заданных траекториях движения и формах фигуры часть изображения может не стираться.

Для определения размера массива M требуется определить необходимую память. В В цветовых режимах экран сделан многослойным, чтобы обеспечивать гамму цветов сложением разных цветов в одной точке.

Пример. Движение голубой луны.

Луна изображается в виде серпа и восходит из левого нижнего угла экрана. Она движется по темному небу. Внизу экрана изображен горизонт в виде части круга, который окрашен темно-фиолетовым цветом. Размер массива Moon определен по приведенной выше методике.

DIM Moon(62)
SCREEN 1: WINDOW (0, 0)-(320, 200) ‘Открыто стандартное окно для SCREEN 1.
PALETTE 1, 3: PALETTE 2, 5 ‘Установлены голубой и темно-фиолетовый цвета на атрибуты 1 и 2.
CIRCLE (160, -150), 250, 1 ‘Нарисована линия горизонта.
PAINT (160, 0), 2, 1 ‘Ниже её окрашена земля.
pi = 3.141592
CIRCLE (15, 40), 15, 1, pi / 2, 3 * pi / 2 ‘Внешняя окружность серпа луны.
CIRCLE (45, 40), 35, 1, pi — .4, pi + .4 ‘Внутренняя окружность.
PAINT (2, 40), 1 ‘Серп закрашен.
GET (0, 25)-(15, 55), Moon ‘Образ луны взят в память.
xs = 0: ys = 25
FOR x = 15 TO 305 STEP 1 ‘Цикл изменения координаты x.
LINE (xs, ys)-(xs + 15, ys + 30), 0, BF ‘Стирание рисунка луны в старых координатах.
y = 40 + 100 * SIN((x — 15) * pi / 290) ‘Расчёт новой координаты y.
PUT (x, y), Moon, PSET ‘Образ луны ложится на экран в новых координатах.
xs = x: ys = y ‘Сохранение координат.
FOR i = 1 TO 20000: NEXT i ‘Замедляющий цикл (пустой).
NEXT x
END

Обратите внимание на замедляющий пустой цикл. Он необходим вследствие большой рабочей частоты компьютера, результатом которой является слишком быстрое для глаза перемещение фигуры. Количество повторений в пустом цикле подбирается из условий комфортности восприятия движущегося изображения.

Если вы хотите так же поучить уроки по .net framework. Тогда заходите на сайт coding4.net — коллективный блог о программировании под .Net Framework. Отличные статьи и самые лучшие решения для Вашего обучения.

100% зрение без операций

Будь в курсе. Подпишись по e-mail:      

2 комментов по теме: “QUICK BASIC 4.5. Программирование движения фигур на экране.”

  1. Aleksandr:

    не работает FOR x = 15 TO 305 STEP 1 что то не хватает.

  2. 3. Оператор цикла FOR…TO…NEXT… позволяет реализовать циклический алгоритм, когда часть программы может быть выполнена много раз подряд. FOR…TO… — начало цикла, NEXT… — конец цикла.

    То, что стоит между началом и концом цикла, называется телом цикла. Иногда также применяются вложенные циклы, то есть циклы могут быть вложенными один в другой.

    FOR X=A TO B STEP H

    ……………….

    NEXT X

    Здесь X — переменная, A — начальное значение переменной, B — конечное значение переменной, H — шаг, с которым меняется переменная. Если шаг STEP H отсутствует, то по умолчанию шаг H=1. При этом переменная X называется счётчиком цикла. Повторение участка программы с шагом H происходит до тех пор, пока X не достигло B.

    попробуйте убрать STEP

    и все-таки qbasic работает не в visual studio

У вас есть мнение? Оставьте свой отзыв: