ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Главная » Статьи » Game Maker » Game Maker

Игровая графика(часть 2)

Рисование Поверхностей

Это функциональное назначение доступно только в Pro издании Game Maker.

В определённых ситуациях Вы можете не захотеть закрасить непосредственно экран, но хотели бы закрасить холст, который может быть использован позже, чтобы закрашивать элементы на экране. Такой холст называется - поверхность. Например, Вы хотите позволить, чтобы пользователь рисовал на экране. Краска не должна быть нарисована на экране (поскольку она будет удаляться каждый следующий шаг), но взамен Вы можете рисовать на отдельной поверхности, которая будет копироваться на экране в каждом шаге. Или Вы хотите использовать текстуру, которая в завершении будет изменяться.

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

Для работы с поверхностями существуют следующие функции

surface_create(w,h) Создаёт поверхность, обозначенную шириной и высотой. Возвращает id поверхности, которая должна использоваться во всех дальнейших вызовах. Примечание: эта поверхность не будет очищена. За неё ответственность несёт пользователь. (Установите это как цель и вызывайте подходящую функцию очистки.)
surface_free(id) Освобождает память, используемую поверхностью.
surface_exists(id) Возвращает поверхность с указанным существующим id.

surface_get_width(id) Возвращает ширину поверхности.
surface_get_height(id) Возвращает высоту поверхности.
surface_get_texture(id) Возвращает текстуру, соответствующую поверхности. Это может использоваться, чтобы рисовать текстурные объекты с изображением на поверхности.

surface_set_target(id) Устанавливает указанную поверхность как целевой эскиз. Всё последующее рисование произойдёт на этой поверхности. Это повторно установит проектирование простым охватом поверхности.
surface_reset_target() Повторно устанавливает целевое рисование в обычный экран.

surface_getpixel(id,x,y) Возвращает цвет пикселя, соответствующего позиции (x,y) на поверхности. Это не очень быстро, так что используйте осторожно.
surface_save(id,fname) Сохраняет bmp изображение поверхности в заданном названии. Полезно для получения захватов экрана..
surface_save_part(id,fname,x,y,w,h) Сохраняет часть поверхности в заданном названии.

draw_surface(id,x,y) Рисует поверхность в позиции (x,y). (Без цвета, смешивания и альфа прозрачности.)
draw_surface_stretched(id,x,y,w,h) Рисует поверхность, растянутую к обозначенной области.
draw_surface_tiled(id,x,y) Рисует поверхность плитками так, чтобы они заполнили всю комнату.
draw_surface_part(id,left,top,width,height,x,y) Рисует обозначенную часть поверхности с её началом в позиции (x,y).
draw_surface_ext(id,x,y,xscale,yscale,rot,color,alpha) Рисует поверхность, масштабированную и вращаемую со смешивающимся цветом (используйте c_white, чтобы не было смешивания) и альфа прозрачностью(0-1).
draw_surface_stretched_ext(id,x,y,w,h,color,alpha) Рисует поверхность, протянутую к обозначенной области. color - смешивающийся цвет, и alpha - указывает установку прозрачности.
draw_surface_tiled_ext(id,x,y,xscale,yscale,color,alpha) Рисует поверхность плитками так, чтобы они заполнили всю комнату, но теперь с факторами масштаба и установками прозрачности и цвета.
draw_surface_part_ext(id,left,top,width,height,x,y,xscale,yscale,color,alpha) Рисует обозначенную часть поверхности с её началом в позиции (x,y), но теперь с факторами масштаба и установками прозрачности и цвета.
draw_surface_general(id,left,top,width,height,x,y,xscale,yscale,rot,c1,c2,c3,c4,alpha) Самая важная функция рисования. Это рисует обозначенную часть поверхности с её началом в позиции (x,y), но теперь с факторами масштаба, углом вращения, цветом для каждой из этих четырёх вершин (вверх-влево, вверх-вправо, вниз-вправо и вниз-влево) и величиной альфа прозрачности.

surface_copy(destination,x,y,source) Копирует исходную поверхность в позиции (x,y) в назначаемой поверхности. (Без любой формы смешивания.)
surface_copy_part(destination,x,y,source,xs,ys,ws,hs) Копирует обозначенную часть исходной поверхности в позиции (x,y) в назначаемой поверхности. (Без любой формы смешивания.)

Обратите внимание, что нет никаких функций, чтобы копировать часть экрана к поверхности. (Это невозможно из-за различия форматов между экраном и поверхностями.) Если это требуется, Вы должны установить поверхность, предоставляющую цель и затем рисовать комнату. Вы можете тогда использовать поверхность, копируя подпрограммы для получения требуемых частей.

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

Немного осторожными нужно быть при использовании этих функций. В особенности, пожалуйста, заметьте следующие:

  • Вы никогда не должны изменять цель рисования, в то время как Вы фактически рисуете на экране, то есть никогда не используйте это в событии рисования. Это причинит серьёзные проблемы с проектированием и точками вида.
  • Поверхности не поддерживают скрытое поверхностное удаление.
  • После установки поверхности как передающейся цели и её переустановке, 3d установки будут разрушены. Вы должны вызвать d3d_end () и d3d_start (), чтобы повторно установить их.
  • По причинам скорости, поверхность обрабатывается только в видео памяти. В результате, Вы можете потерять поверхность, когда, например, изменяется разрешение экрана или включается экранная заставка.
  • Поверхности не будут сохранены при сохранении игры.

 

 

Тайлы

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

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

  • background. Ресурс фона, из которого тайл потребовался.
  • left, top, width, height. Часть используемого фона.
  • x,y. Позиция левого верхнего угла тайла в комнате.
  • depth. Глубина тайла. Вы можете выбрать любую глубину, которую Вы захотите, результат появления будет виден между образцами объектов.
  • visible. Показывает, является ли тайл видимым или нет.
  • xscale, yscale. Каждый тайл может быть масштабирован (1 по умолчанию).
  • blend. Смешиваемый цвет, используемый при рисовании тайла.
  • alpha. Альфа значение тайла. 1 = не прозрачный, 0 = полностью прозрачный.

Чтобы изменять свойства конкретного тайла, Вам нужно знать его id. Когда Вы добавляете тайлы при создании комнат - id отображается в информационной области внизу. Есть также функция для определения id тайла в конкретной позиции.

Следующие функции взаимодействуют с тайлами:

tile_add(background,left,top,width,height,x,y,depth) Добавляет в комнату тайл с указанными значениями (смотрите выше). Возвращает id созданного тайла.
tile_delete(id) Удаляет тайл с заданным id.
tile_exists(id) Определяет, существует ли тайл с указанным id и возвращает.

tile_get_x(id) Возвращает координату тайла с указанным id по оси Х в текущей комнате.
tile_get_y(id) Возвращает координату тайла с указанным id по оси Y в текущей комнате.
tile_get_left(id) Возвращает левое значение тайла с заданным id.
tile_get_top(id) Возвращает верхнее значение тайла с заданным id.
tile_get_width(id) Возвращает ширину тайла с заданным id.
tile_get_height(id) Возвращает высоту тайла с заданным id.
tile_get_depth(id) Возвращает глубину тайла с заданным id.
tile_get_visible(id) Возвращает, если тайл с заданным id видимый.
tile_get_xscale(id) Возвращает коэффициент масштабирования тайла с заданным id по оси X.
tile_get_yscale(id) Возвращает коэффициент масштабирования тайла с заданным id по оси Y.
tile_get_background(id) Возвращает фон тайла с заданным id.
tile_get_blend(id) Возвращает смешиваемый цвет тайла с заданным id.
tile_get_alpha(id) Возвращает коэффициент прозрачности тайла с указанным id.

tile_set_position(id,x,y) Устанавливает позицию тайла с заданным id.
tile_set_region(id,left,right,width,height) Устанавливает область тайла с заданным id на своём фоне.
tile_set_background(id,background) Устанавливает фон для тайла с заданным id.
tile_set_visible(id,visible) Устанавливает, если тайла с заданным id видимый.
tile_set_depth(id,depth) Устанавливает глубину тайла с заданным id.
tile_set_scale(id,xscale,yscale) Устанавливает масштабирование тайла с заданным id.
tile_set_blend(id,color) Устанавливает смешиваемый цвет тайла с заданным id. Доступно только в Pro издании Game Maker!
tile_set_alpha(id,alpha) Устанавливает коэффициент альфа прозрачности для тайла с заданным id.

Следующее функции имеют дело со слоями тайлов, то есть, собранием тайлов в той же глубине.

tile_layer_hide(depth) Скрывает все тайлы в указанной глубине слоя.
tile_layer_show(depth) Показывает все тайлы в указанной глубине слоя.
tile_layer_delete(depth) Удаляет все тайлы в указанной глубине слоя.
tile_layer_shift(depth,x,y) Перемещает все тайлы в указанной глубине слоя над векторной позицией (x,y). Может использоваться для создания прокрутки слоёв тайлов.
tile_layer_find(depth,x,y) Возвращает id тайла с заданной глубиной в позиции (x,y). Если тайл в позиции не существует, возвращается значение - 1. Когда многочисленные тайлы с заданной глубиной существуют в заданной позиции - возвращается 1.
tile_layer_delete_at(depth,x,y) Удаляет тайл с заданной глубиной в позиции (x,y). Когда многочисленные тайлы с заданной глубиной существуют в указанной позиции, то они полностью будут удалены.
tile_layer_depth(depth,newdepth) Изменяет глубину всех тайлов в указанной глубине на новую глубину. С этой функцией, Вы можете переместить целые слои тайлов на новую глубину.

 

 

Экран

Экран представляет собой целую область монитора. У него имеется размер (обычно 1024x768 или 1280x1024), глубина цвета, то есть, количество используемых битов для представления одиночного пикселя (обычно 16 = Высокий Цвет или 32 = Полный Цвет) и частота обновления, то есть, сколько раз в секунду экран будет обновлен (обычно между 60 и 120 Герц). Эта установка может изменить свойства экрана. Для игр, когда они в основном работают в полноэкранном режиме, важно изменение этой установки. Все эти установки могут быть инициализированы в Game Settings (Установки Игры). Для использования их в течение игрового процесса, существуют следующие функции. Примечание: изменение установок в течение игрового процесса может завершиться задержкой времени перед выполнением определённых вещей. Функции для установки режимов доступны только в Pro издании Game Maker.

display_get_width() Возвращает ширину экрана в пикселях.
display_get_height() Возвращает высоту экрана в пикселях.
display_get_colordepth() Возвращает глубину цвета в битах.
display_get_frequency() Возвращает частоту обновления экрана.
display_set_size(w,h) Устанавливает ширину и высоту экрана в пикселях. Возвращает, если успешно. (Поймите, допускаются только определённые комбинации.)
display_set_colordepth(coldepth) Устанавливает глубину цвета. Допускаются значения только 16 и 32 бит. Возвращает, если успешно.
display_set_frequency(frequency) Устанавливает частоту обновления для экрана. Допускается только несколько частот. Обычно, Вы можете установить её на 60 с той же скоростью комнаты, чтобы получить плавные движения с 60 фреймами в секунду. Возвращает, если успешно.
display_set_all(w,h,frequency,coldepth) Устанавливает все сразу. Используйте -1 для значения, которого Вы не хотите изменить. Возвращает, если успешно.
display_test_all(w,h,frequency,coldepth) Тестирует указанные установки, причём их не изменяя. Используйте -1 для значения, которого Вы не хотите изменить. Возвращает, если установка допустима.
display_reset() Восстанавливает установки экрана на первоначальные при запуске программы.

Иногда это полезно, чтобы получить информацию о позиции мыши на экране или для изменения этой позиции. Для этого существуют следующие функции:

display_mouse_get_x() Возвращает x-координату мыши на экране.
display_mouse_get_y() Возвращает y-координату мыши на экране.
display_mouse_set(x,y) Устанавливает позицию мыши на экране в указанных значениях.

 

 

Окно

Фактически - игра происходит в окне. Это окно имеет множество свойств, например, имеется ли у него граница, или установлен ли полноэкранный режим и т.п. Обычно эти установки размещены в Game Settings. Но Вы можете изменить их в течение игры. Для этого существуют следующие функции:

window_set_visible(visible) Устанавливает видимое игровое окно. В основном Вы захотите, чтобы окно было видимо в течение всей игры. Программа не получит события клавиатуры, когда окно невидимо.
window_get_visible() Возвращает видимое игровое окно.
window_set_fullscreen(full) Устанавливает отображение окна в полноэкранном режиме.
window_get_fullscreen() Возвращает отображение окна в полноэкранном режиме.
window_set_showborder(show) Устанавливает границы вокруг игрового окна. (В полноэкранном режиме границы показаны не будут.)
window_get_showborder() Возвращает, когда будут показаны границы в оконном режиме.
window_set_showicons(show) Устанавливает отображение кнопок границы (свернуть, развернуть, закрыть). (В полноэкранном режиме показаны не будут.)
window_get_showicons() Возвращает, если кнопки границ будут отображены в оконном режиме.
window_set_stayontop(stay) Устанавливает, должно ли окно всегда оставаться поверх других окон.
window_get_stayontop() Возвращает, если окно всегда остается поверх других окон.
window_set_sizeable(sizeable) Устанавливает, если игрок изменяет окно. (Игрок может только изменить размер отображаемых границ и в полноэкранный режим переключить не может.)
window_get_sizeable() Возвращает, если окно было изменено игроком.
window_set_caption(caption) Устанавливает строку заголовка для окна. Обычно Вы это указываете при опредении комнаты, что также может быть изменено при использовании переменной room_caption. Итак, эта функция фактически бесполезна, если Вы рисуете свою комнату предпочтительней, чем бы это сделал Game Maker. Заголовок видим только тогда, когда окно имеет границу, и когда игры протекает не в полноэкранном режиме.
window_get_caption() Возвращает заголовок окна.
window_set_cursor(curs) Устанавливает используемый в окне курсор мыши. Вы можете использовать следующие константы:

cr_default
cr_none
cr_arrow
cr_cross
cr_beam
cr_size_nesw
cr_size_ns
cr_size_nwse
cr_size_we
cr_uparrow
cr_hourglass
cr_drag
cr_nodrop
cr_hsplit
cr_vsplit
cr_multidrag
cr_sqlwait
cr_no
cr_appstart
cr_help
cr_handpoint
cr_size_all

В частности, чтобы спрятать курсор мыши, используйте cr_none как значение.
window_get_cursor() Возвращает используемый в окне курсор.
window_set_color(color) Устанавливает цвет части окна, который не используется для отображения комнаты.
window_get_color() Возвращает цвет окна.
window_set_region_scale(scale,adaptwindow) Если окно больше чем фактическая комната, то комната будет отображена в отцентрированной области окна. Возможно также указать масштабирование для заполнения по всей области окна, либо частичной области окна. Значение 1 масштабированием не является. Если Вы используете значение 0, то область будет масштабирована, чтобы заполнить целое окно. Если Вы установили бы отрицательную величину, то это будет масштабировано в максимальный размер окна, поддерживая отношение свободной длины к высоте (это часто то, что Вы хотите). adaptwindow - указывает, должен ли размер окна быть приспособлен, если масштабированная комната не установлена. "Приспосабливающееся" окно эффективно только тогда, когда коэффициент масштабирования положительный.
window_get_region_scale() Возвращает коэффициент масштабирования для рисуемого изображения.

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

window_set_position(x,y) Устанавливает позицию окна (часть клиента) в указанную позицию.
window_set_size(w,h) Устанавливает размер (часть клиента) в указанный размер. Отметьте, что указываемый размер слишком мал для установки в рисуемую область, но он содержит достаточно большое значение для установки самой области.
window_set_rectangle(x,y,w,h) Устанавливает позицию и размер прямоугольника окна. (Делается обеими предшествующими программами в одном шаге.)
window_center() Центрирует окно на экране
window_default() Предоставляет окну встроенный размер и позицию (центрированную) на экране.
window_get_x() Возвращает текущую x-координату окна.
window_get_y() Возвращает текущую y-координату окна.
window_get_width() Возвращает текущую ширину окна.
window_get_height() Возвращает текущую высоту окна.

Кроме того, Вы, вероятно, никогда не захотите использовать любые позиционирующие функции окна, т. к. Game Maker заботится об этом автоматически.

В редких случаях, Вы могли бы захотеть узнать позицию мыши, что касается окна. (Обычно Вы всегда используете позицию мыши, которая касается комнаты или вида.) Для этого существуют следующие функции.

window_mouse_get_x() Возвращает x-координату мыши в окне.
window_mouse_get_y() Возвращает y-координату мыши в окне.
window_mouse_set(x,y) Устанавливает позицию мыши в окне с указанными значениями.

 

Виды

Как Вы уже должны знать, Вы можете определить вплоть до восьми разных видов при проектировании комнат. Вид определяется своей областью в комнате и переносом на экране (точнее, рисуемой области в пределах окна). Таким образом, Вы можете показать другие части комнаты в других местах экрана. Также, Вы можете убедиться, что конкретный объект всегда остаётся видимым.

Вы можете управлять видами из кода. Вы можете сделать виды видимыми и невидимыми, и изменять место или размер видов на экране или позицию вида в комнате (что в целом - полезно, когда Вы не указываете видимым никакой объект). Вы можете изменить размер горизонтальной и вертикальной границы вокруг видимого объекта, и Вы можете указать, какой объект должен остаться видимым. Очень важно, когда главный объект изменяется в течение игры. Например, Вы можете изменить основной персонаж, основанный на своём текущем статусе. К несчастью, это означает, что он - больше не объект, который должен остаться видимым. Это может быть исправлено одной строкой текста программы в событии создания всех возможных основных объектов (предположим, это должно случиться в первом виде):

{
  view_object[0] = object_index;
}

Существуют следующие переменные, которые влияют на вид. Все, за исключением двух первых - подготавливает диапазон от 0 (первый вид) до 7 (последний вид).

view_enabled Отражает, использовать виды или нет.
view_current* Отражает индекс (число от 0 до 7) текущего вида. Используйте это только в событии рисования. Вы можете, например, проверить эту переменную, чтобы сделать определённые вещи только в одном виде. Переменная не может быть изменена.
view_visible[0..7] Отражает активный вид с указанным индексом или нет.

view_xview[0..7] Позиция X вида в комнате.
view_yview[0..7] Позиция Y вида в комнате.
view_wview[0..7] Ширина вида в комнате.
view_hview[0..7] Высота вида в комнате.
view_xport[0..7] Позиция X переноса вида в рисуемой области.
view_yport[0..7] Позиция Y переноса вида в рисуемой области.
view_wport[0..7] Ширина видового переноса в рисуемой области.
view_hport[0..7] Высота видового переноса в рисуемой области.
view_angle[0..7] Угол вращения, используемый для вида в комнате (против часовой стрелки в градусах).
view_hborder[0..7] Размер горизонтальной границы вокруг видимого объекта (в пикселях).
view_vborder[0..7] Размер вертикальной границы вокруг видимого объекта (в пикселях).
view_hspeed[0..7] Максимальная горизонтальная скорость вида.
view_vspeed[0..7] Максимальная вертикальная скорость вида.
view_object[0..7] Объект, чей образец должен остаться видим в поле зрения. Если существуют несколько образцов этого объекта, то сопровождается только первый. Вы можете также назначить идентификатор образца в эту переменную. В этом случае - сопровождается указанный образец.

Отметьте, что размер изображения на экране основан в видимых видах в начале комнаты. Если Вы изменяете виды в течение игры, то они не могут больше поместиться на экране. Размер экрана всё же автоматически не приспосабливается. Если Вам это нужно, то Вы должны сделать это сами, используя следующие переменные:

window_set_region_size(w,h,adaptwindow) Устанавливает ширину и высоту рисуемой области в окне. adaptwindow - указывает, должен ли размер окна быть приспособлен, если область не установлена. Размер окна всегда будет приспособлен, если Вы используете фиксированное масштабирование. (Смотрите функцию window_set_region_scale().)
window_get_region_width() Возвращает текущую ширину рисуемой области.
window_get_region_height() Возвращает текущую высоту рисуемой области.

В играх Вам часто может понадобиться позиция курсора мыши. Нормально, когда Вы используете для этих переменных mouse_x и mouse_y. Когда имеются многочисленные виды, то эти переменные предоставляют позицию мыши, что касается вида мыши. Иногда Вам, вероятно, понадобиться позиция мыши, которая будет касаться конкретного вида, и даже когда курсор будет находиться за пределами вида. Для этого существуют следующие функции.

window_view_mouse_get_x(id) Возвращает x-координату мыши, что касается вида с индексом Возвращает x-координату мыши, что касается вида с индексом id.
window_view_mouse_get_y(id) Возвращает x-координату мыши, что касается вида с индексом id.
window_view_mouse_set(id,x,y) Возвращает y-координату мыши, что касается вида с индексом id.
window_views_mouse_get_x() Возвращает x-координату мыши, что касается вида (также, как mouse_x).
window_views_mouse_get_y() Возвращает y-координату мыши, что касается вида (также, как mouse_y).
window_views_mouse_set(x,y) Устанавливает позицию мыши, что касается первого вида, который видимый.

 

 

Перекрашивание экрана

Обычным действием в конце каждого шага, является перекрашивание экрана комнаты. Но в редких обстоятельствах, Вам может понадобиться обновить комнату в других моментах. Это случается тогда, когда Ваша программа превышает управление. Например, перед "заморозкой" может понадобиться долгосрочное перекрашивание. Также, когда Ваш код отображает сообщение и ожидает игрока, который нажмёт клавишу, то Вам нужно произвести перекрашивание между этими действиями. Для этого имеются две программы.

screen_redraw() Перекрашивает экран, выполняя все события рисования заново.
screen_refresh() Перекрашивает экран (не выполняя событий рисования).

Для того чтобы понять вторую функцию, Вам понадобится понимать немного лучше функции рисования. Есть непосредственно изображение, в котором случается всё рисование. Это изображение не видимо на экране. Только в конце шага, после всего, происходит событие рисования, где отображаемое изображение заменяется внутренним изображением. (Это вызывается двойной буферизацией.) Сначала функция перерисовывает внутреннее изображение, затем обновляет отображаемое изображение. Вторая функция только обновляет изображение на экране.

Теперь Вы должны также понять, почему Вы не можете использовать действия рисования или функции в других событиях, а только в событиях рисования. Они "сделают вещи" во внутреннем изображении, но они не будут видимыми на экране. И когда выполняются события рисования, сначала выполняется обновление фона комнаты, стирая всё, что было проделано во внутреннем изображении. Но когда Вы используете screen_refresh() после Вашего обновления, скорректированное изображение станет видимым на экране. Так, например, сценарий может обновить некоторый текст на экране, вызывая функцию восстановления, затем ожидать игрока, который нажмёт клавишу, подобно следующей части кода.

{
  draw_text(room_width/2,100,'Для продолжения нажмите любую клавишу.');
  screen_refresh();
  keyboard_wait();
}

Пожалуйста, поймите, когда Вы рисуете, используя другое событие - не событие рисования, то Вы рисуете просто в изображении, не в виде! Итак, координаты, использованные Вами, такие же, как и при отсутствии видов. Будьте осторожны при использовании этой технологии. Убедитесь, что Вы полностью понимаете, что восстановление экрана занимает некоторое время.

Когда Вы перерисовываете свою комнату, то это может быть полезным, чтобы НЕ позволить перерисовывать всё автоматически. Например, Вы могли бы захотеть перерисовать комнату только через каждые 5 шагов. Для этого Вы можете использовать следующие функции:

set_automatic_draw(value) Указывает автоматическое перекрашивание комнаты (истина, по умолчанию) или нет (ложь).

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

set_synchronization(value) Указывает синхронизацию перекрашивания с помощью частоты обновления монитора.

Категория: Game Maker | Добавил: Strateg (27.12.2010)
Просмотров: 3194 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Меню сайта

-=ЯП=-

Конструктор\Движки

Игроделу

Наш опрос
Оцените мой сайт
Всего ответов: 58

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

DiamonD
Бесплатный конструктор сайтов - uCoz