Реклама:

HUDSprite.Material .Texture.TextureMode: =tmModulate; HUDSprite. Position.X: =120*гез_,х/1024 ; HUDSprite.Position.Y:=100*res_y/768; HUDSprite.Width:=

HUDSprite. Material. Texture. Image. Width*res_x/1024; HUDSprite.Height:=

HUDSprite.Material.Texture.Image.Height*res_y/768;

Числа 120 и 100 соответствуют координатам данного спрайта в разрешении 1024x768. Простая школьная пропорция перемещает спрайт в нужное место и масштабирует его при смене разрешения.

Проблему с разными разрешениями мы решили. А теперь поговорим о не менее важной вещи — разных уровнях прозрачности. В коде выше вы наверняка заметили несколько строк, посвященных режимам прозрачности. Ни один более или менее сложный HUD не может состоять только из квадратных спрайтов. Приборные щитки, фигурные меню, радар, изгибы панелей — как реализовать все эти нестандартные формы? Здесь нам поможет первый уровень прозрачности. Какую-то часть квадратного спрайта мы должны сделать абсолютно прозрачной, тогда спрайт будет иметь фигурную форму. Проще всего это сделать так. Нарисуйте нужный спрайт, и все места, которые должны быть прозрачными, закрасьте абсолютно черным цветом (цвет RGB{0,0,0)). Внимание! Если в видимой части спрайта также используется черный цвет, в этом месте будет дырка. Поэтому вместо черного цвета используйте какой-либо оттенок серого (к примеру, RGB (1,0,0)). "На глаз" от черного такой цвет отличить невозможно.

Теперь загружайте эту картинку в объект спрайта, а остальное сделают вот эти две строчки.

HUDSprite. Material. BlendingMode: =bmTransparency; HUDSprite. Material. Texture. ImageAlpha: = tiaSuperBlackColorTransparent;

Первая устанавливает режим прозрачности, а вторая указывает, какие именно области изображения будут прозрачными. В нашем случае— все области, закрашенные черным цветом. Есть и другие способы задания прозрачных зон. К примеру, константа tiaTopLeftPointColorTransparent устанавливает режим, при котором цветом прозрачности будет цвет верхней левой точки изображения.

Часто бывает необходимо сделать полупрозрачным весь спрайт. За общую прозрачность отвечает свойство Alphachannel. Значение I соответствует абсолютной непрозрачности, значение 0 — абсолютной прозрачности. Чтобы спрайт стал полупрозрачным, задайте какое-нибудь дробное число от 0 до 1.

Есть еще один способ задания прозрачности спрайта, с помощью которого можно реализовать любой тип прозрачности. К примеру, часть спрайта будет полностью прозрачной, а часть — полупрозрачной, причем эта полупрозрачность будет градиентной. С помощью этого способа можно делать поразительные эффекты. Цена — повышенная ресурсоемкость по сравнению с уже рассмотренными способами. Речь идет об альфа-маске изображения. Самые популярные форматы, в которых есть альфа-маска, — ВМР32 и TGA. Файлы обоих форматов вы можете создать, например, в Photoshop. Мы рекомендуем использовать формат TGA, потому что в нем предусмотрено сжатие. Использовать файлы с альфа-маской в GLScene совсем несложно.

HUDSpri te. Material. BlendingMode: =bmTransparency ; HUDSprite.Material.Texture.Image.LoadFromFile ('HUDSprite.tga');


⇐ Предыдущая страница| |Следующая страница ⇒