Главная » Таги : "2D"

RSS

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

Не нравитсяНравится   Рейтинг +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 Рабочего стола

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

Таги: ,

Быстрая работа с графикой в среде Windows

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

Быстрая работа с графикой

Пример быстрой работы с графикой в среде Windows без использования средств DirectX
Совместимость: Windows 95, 98, NT, 2000, Me, TrE, XP, Whistler, Tristler :) )

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
type
TfmMain = class(TForm)
pbDraw: TPaintBox;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
procedure CreateBitmap(aSX, aSY: Integer);
procedure RecreateBitmap(aSX, aSY: Integer);
procedure DeleteBitmap;
procedure RestrictSize(var msg: TMessage); message WM_GETMINMAXINFO;
procedure pbDrawPaint(Sender: TObject);
private
ScrBitmap: TBitmap;
Scr: Pointer;
SX, SY: Integer;

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

Таги: , ,

Работа со спрайтами

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

Спрайты их игр
Для начала нужно разобраться, что же такое спрайт. Вот такое описание я нашел в книге Андрэ Ла Мота:

» Знаете, есть такой газированный напиток… Снова шучу. На самом деле спрайты – это маленькие объектики, которые находятся на игровом поле и могут двигаться. Этот термин прижился с легкой руки программистов фирмы Atari и Apple в середине 70-х годов. Спрайты – это персонажи в играх для ПК, которые могут без труда перемещаться по экрану, изменять цвет и размер «

И так, спрайт это персонаж игры. Не углубляясь в дебри программирования, могу сказать что спрайт это массив из цветов – для простоты представим его как BMP файл или TBitmap, тем более что, этот формат поддерживаемый windows и не содержащий компрессии.

Что нам нужно от спрайта – заставить его появляться на экране и образовывать анимацию. Анимация это не только смена координаты спрайта, но и изменение самой картинки. Следовательно спрайт может иметь не одно изображение, а несколько. Смена их и приводит к анимации.

Как я уже говорил спрайт это матрица. При вписывании в кравдрат ( прямоугольник ) сложного объекта, например волшебника из рисунка ниже, остается свободное пространство. Его заполняют цветом, которого нет в изображении самого объекта. При простом копировании этой матрицы ( или для простоты BMP или TBitmap ) на экран выводится и волшебник и фон под ним. Но нам это не всегда, подчеркну не всегда, нужно. Если спрайт выводится на фон, то он затирает все квадратную область. Как я уже говорил спрайт это матрица. При вписывании в кравдрат ( прямоугольник ) сложного объекта, например волшебника из рисунка ниже, остается свободное пространство. Его заполняют цветом, которого нет в изображении самого объекта. При простом копировании этой матрицы ( или для простоты BMP или TBitmap ) на экран выводится и волшебник и фон под ним. Но нам это не всегда, подчеркну не всегда, нужно. Если спрайт выводится на фон, то он затирает все квадратную область.

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

Таги: , , ,