|
x = координата x верхнего левого угла окна
y = координата y верхнего левого угла окна width = ширина окна (в пикселах) height = высота окна (в пикселах) |
|
Есть МНОГО случаев, когда Вы можете захотеть отобразить графические объекты (инопланетян, корабли, и т.д) ТОЛЬКО в определенной области экрана, не затрагивая другие области. Это часто называется как "работа с окнами" или "отсечение" области. Обычно, сначала Вы выполните все операции рисования (фон, управление и т.д), а затем организуете "окно" на экране, в который и выведете нужное изображение. Есть миллион применений для этого окна; можно вверху экрана вывести радарные экраны, изобразить простое окно с полосами прокрутки и т.д. Это немного сложнее, чем большинство графических команд, так что убедитесь, что Вы имеете достаточно опыта и знаний перед попыткой использовать это. Самая полезная подсказка, которую я могу дать Вам об этой команде: НЕ ЗАБУДЬТЕ ОЧИСТИТЬ ОБЛАСТЬ ПРОСМОТРА (окно), КОГДА ВЫ ЕГО СОЗДАЛИ! Сделайте это, устанавливая область просмотра окна размером во весь экран (то есть: Viewport 0,0,640,480, если ваша игра использует разрешение 640x480). Тщательно изучите пример. Помните, второй набор чисел - НЕ КООРДИНАТЫ окончания окна, а РАЗМЕР окна, начинающегося в первых координатах. |
|
; Пример ViewPort
; Установим графический режим Graphics 800,600 ; Установим двойную буферизацию SetBuffer BackBuffer() ; Окно будет начинаться в координатах 100,100 и размеры его 200,200 пикселов Viewport 100,100,200,200 ; Будем рисовать случайные прямоугольники случайного цвета While Not KeyHit(1) Cls ; Очищаем экран For t = 1 To 100 ; рисуем по 100 прямоугольников за один проход цикла Color Rnd(255),Rnd(255),Rnd(255) ; устанавливаем случайный цвет Rect Rnd(800),Rnd(600),Rnd(300),Rnd(300),Rnd(0,1) ; случайные размеры и координаты, некоторые-закрашенные Next ; рисовать следующий Flip ; буфер-на экран Wend |