Главная » 2D графика

RSS

Способы хранение графики в играх и бизнес приложениях

Не нравитсяНравится   Рейтинг 0

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

Хранение графики в приложениях

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

Читать далее »

Таги: , , ,

Низкоуровневая загрузка растра

В статье рассматриваются два способа загрузки растра – из ресурсной секции PE файла (для тех кто не в курсе, это обычных исполняемый exe файл семейства Widows 9X, NT) и непосредственно из файла. Зачем я всё это описываю, если есть прекрасный, отработанный код

1
2
3
4
5
Var
Bitmap : Tbitmap;
…
Bitmap.LoadFromFile('somepicture.bmp');

… действительно, метод хорош, но есть несколько моментов, по которым использовать данный метод не желательно.

Читать далее »

Таги: , , ,

Создание редактора карт в стратегиях типа WarCraft

Не нравитсяНравится   Рейтинг +2

Редактор карт

Довелось мне как-то озадачиться идеей написать редактор карт для моей новой игры. Скажу сразу, что задача эта не из простых. Приступим сразу к делу. Как правило, в двумерных стратегических играх типа Warcraft, Heroes of Might and Magic, Z и т. д. карты строятся из ячеек. Иными словами, карта – это матрица с некоторыми числовыми значениями внутри ячеек. Эти значения есть номера текстур (растровых картинок с изображениями земли, воды, камней и т. д., из которых и будет склеиваться Ваш уникальный ландшафт).

Спрайты для ланшафтаНа рисунке изображена ну очень маленькая карта с размером матрицы 3х3. Для создания подобной карты задается двумерный массив ( Map : Array[3,3] of Byte ), записываются, каким-либо образом, в каждую ячейку порядковые номера текстур и при выводе карты на экран эти номера читаются из массива.

Читать далее »

Таги: , ,

Профессиональное создание хранителей экрана

Не нравитсяНравится   Рейтинг +2

Создание хранителей экрана

Данная статья, до некоторого времени путешествовала по просторам сайтов русской документации в совершенно первобытном виде – в ней были множественные ошибки, у неё часто менялись авторы-переводчики, но что самое главное – у нее не было рабочего примера! Количество ошибок при переписывании статьи достигло такого количества, что при компиляции проект на 100% не работал.

Я переписал пример, добавил в него некоторые улучшения и сделал после статьи послесловие, которое возможно интереснее самой статьи. Итак читайте бестселлер всех серверов документации по Delphi, статью скрывавшуюся под различными названиями о создании ScreenSaver’а:

Главное о чем стоит упомянуть это, что ваш хранитель экрана будет работать в фоновом режиме и он не должен мешать работе других запущенных программ. Поэтому сам хранитель должен быть как можно меньшего объема.

Читать далее »

Таги: ,

Рисуем на рабочем столе

Не нравитсяНравится   Рейтинг +2

Рабочий стол

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

1
2
3
4
5
6
7
procedure TForm1.DeskTopPaint(Sender:Tobject);
var
  DeskTop:TCanvas;
begin
  DeskTop:=TCanvas.Create;
  try
    DeskTop.Handle:=GetDC(0);// Получим Handle Рабочего стола

Читать далее »

Таги: ,