Освой компьютер
Например, чтобы нарисовать бордюр из двух отрезков, нужно задать
три вершины: две концевых и одну угловую. Далее мы определим прямоугольный
бордюр, для чего нам понадобятся пять вершин (порядок вывода: 1, 2, 3, 4, 1). dc.b 5 ;пять точек
Следующее двойное слово должно содержать указатель на таблицу координат
вершин бордюра: dc.l coord ;указатель на таблицу
;координат И завершает описываемый блок данных указатель на следующий бордюр (или
ноль, если других бордюров нет). Этот указатель используется для связывания
независимых бордюров, что может быть полезным, например, при рисовании
\"объемных\" кнопок. Однако для простоты мы будем рассматривать только один
бордюр: dc.l 0 ;нет других бордюров Нам осталось только определить массив координат точек бордюра. Этот массив
имеет очевидную структуру:
coord: ;координаты вершин
dc.w -2,-2 ;вершина 1 (X = -2, Y = -2)
dc.w 80,-2 ;вершина 2
dc.w 80,9 ;вершина 3
dc.w -2,9 ;вершина 4
dc.w -2,-2 ;вершина 1 Вот и все. Приведем еще раз весь блок данных бордюра: border:
dc.w 0 ;X - смещение
dc.w 0 ;Y - смещение
dc.b 3 ;цвет отрезков
dc.b 0 ;цвет фона
dc.b 0 ;режим вывода (JAM1)
dc.b 5 ;5 вершин
dc.l coord ;указатель на массив вершин
dc.l 0 ;нет других бордюров
coord:
dc.w -2,-2
dc.w 80,-2
dc.w 80,9
dc.w -2,9
dc.w -2,-2 Чтобы нарисовать этот бордюр, вставьте следующий фрагмент кода в программу
из предыдущего пункта (перед меткой \"loop\"): lea border(PC),A1 ;адрес блока данных бордюра
moveq #20,D0 ;X - координата начальной
;точки
moveq #80 ;Y - координата начальной
;точки
bsr borderdraw ;рисуем бордюр 7.9.
AMIGA: ПРОГРАММИРОВАНИЕ НА АССЕМБЛЕРЕ.
|