Как показывать изображения в игре
How to display images in game Автор - Andrewgosu.
Вы пытались отображать рисунки в WarCraft, но все ваши попытки оканчивались неудачей? Разумеется, так и было. Во всяком случае, больше не бойтесь! Следуйте этим несложным указаниям, и Вы научитесь вставлять изображения в любую карту!
Что нам понадобится: Программа для редактирования фотографий. Программа для конвертирования TGA в BLP. Warcraft и World Editor (можно RoC). Немного времени и терпения. Я буду использовать Photo Shop 7 и Wc3 Image Extractor II. Итак, начнем.
Шаг 1 - Подготовка изображения к WarCraft.
Выберите рисунок, который Вам нравится - я взял вот этот в стиле Джеймса Бонда. Теперь у Вас есть два варианта: Изменить размер изображения так, чтобы ширина и высота были степенью числа 2 (например, 512x512, 256x512). Создать новый холст, который уже является степенью числа 2, и вставить в него свой рисунок. Я выберу последний вариант - создам изображение 512x512 и вставлю мою картинку 300x400. После этого выделите область вокруг изображения и откройте вкладку "Слой". Добавьте альфа-канал и сотрите выделенную часть. Тогда вокруг рисунка появится розовое/красное пространство.
Или же, если Вы выбрали первый способ и подогнали свое изображение под нужные пропорции, Вы не увидите никаких красных частей. Сохраните рисунок в 32-битном TGA. Откройте картинку в программе конвертирования, у меня это Wc3 Image Extractor II, и конвертируйте в *.blp
Вы подготовили изображение. Приступаем ко второму шагу.
Шаг 2 - показ картинок в WarCraft. У Вас есть готовый рисунок. Пора его отобразить. Зайдите в Редактор, откройте Менеджер Импорта (F12) и импортируйте картинку в карту. Сейчас самая важная часть, так что будьте внимательны. Команда GUI "Изображение - Create Image" весьма глючная, так что используйте вместо нее следующую функцию: Code function CreateImageEx takes string imagePath, real size, real x, real y, real z, boolean showImage returns image local image i = CreateImage(imagePath, size, size, 0, x - (size / 2), y - (size / 2), z, 0, 0, 0, 2) call SetImageRenderAlways(i, true) call ShowImage(i, showImage) return i endfunction
И для GUI'шников, версия с точкой: Code function CreateImageExLoc takes string imagePath, real size, location whichLocation, real z, boolean showImage returns image return CreateImageEx(imagePath, size, GetLocationX(whichLocation), GetLocationY(whichLocation), z, showImage) endfunction
Скопируйте эти две функции в нестандартный код карты и используйте Личный сценарий (Custom script) или JASS, чтобы создать изображение: Готово!
Повторим: Ширина и высота рисунка должны. являться степенями числа 2. Изображение должно иметь альфа-слой Используйте функцию CreateImageEx, чтобы создать картинку. Буду очень признателен, если Вы укажете меня в "Благодарностях".
Click here to comment on this tutorial.
|