Текущий архив: 2003.02.13;
Скачать: CL | DM;
Вниз
Работа с непрямоугольными битмапами Найти похожие ветки
← →
lexerursik (2002-04-05 16:15) [0]Хочу оптимизировать вывод карты игры на экран (элемент карты-ромб 60*30 -изометрия). Наверняка можно выводить только полезное пространство исключая прозрачные треугольники. Есть ли какие-нибудь сомпоненты для работы с непрямоугольной графикой? Если нет, то как это сделать?
С уважением Алексей
← →
MBo © (2002-04-05 17:00) [1]Копирование непрямоугольную область рисунка в другой
procedure TForm1.Button1Click(Sender: TObject);
var
PolyRgn:hRgn;
APolygon:array[1..5] of TPoint;
r:trect;
begin
image1.Picture.LoadFromFile("e:\4.bmp");
APolygon[1]:=Point(0,0);
APolygon[2]:=Point(30,20);
APolygon[3]:=Point(50,50);
APolygon[4]:=Point(20,30);
APolygon[5]:=Point(0,0);
PolyRgn := CreatePolygonRgn(APolygon, 5, 0);
SelectClipRgn(image2.Canvas.Handle, PolyRgn);
r:=image1.clientrect;
image2.canvas.copyrect(r,image1.canvas,r);
DeleteObject(PolyRgn);
end;
← →
arbiter © (2002-04-16 21:43) [2]Это очень медленно. Гораздо быстрее сделать маску прозрачности и выводить битмапы функцией MaskBlt.
← →
VitGun (2002-09-10 21:34) [3]Этот код - набросок. Писал на коленке во время лекции...:
begin
for x:=1 to 200 do
for y:=1 to 200 do
begin
dximagelist1.Items[0].Draw(dxdraw1.surface,(x-1)*50,(y-1)*32,0);
dximagelist1.Items[0].draw(dxdraw1.surface,(x*50)-20, (y*32)-15,0);
end;
З.Ы Разрмер тайла 64x31.
← →
Artemiy (2002-09-11 01:13) [4]Я тоже пишу изометрический 2Д движок. Я решил эту проблему (и не только эту!) так: для вывода графики я использую не ДДрав, а Д3Д т.е. рисую треугольники а на них накл. текстуры. И я не вывожу прозр. области.
Плюсы использ Д3Д:
1. То что было указано выше.
2. Аппаратное ускорение всех опаераций по выводу графики.
3. Возможность создание таких фишек как: глобальное освещение, локальные-динамические источники света а так же туман.
Всё это вы можете посмотреть в моём изометрическом редакторе основанном на этом движке. Который вы можете взять с этой страницы: http://artemiy.boom.ru
← →
Oleg_Gashev © (2002-09-11 01:42) [5]Создайте регион и выводите в нем. Все, что в него не попадет, не будет выведено.
← →
cyborg © (2002-09-11 10:28) [6]Слушай Artemiy, ща закачиваю твой редактор, что за фигня, размера не видно, он может мегов 10 весит, а я как дурак сижу... хоть бы размер указал!
← →
cyborg © (2002-09-11 10:44) [7]Посмотрел, интересная вещь! Правда процессора кушает.... у меня аж музыка заикаться стала. Почему там спрайты есть, а в редакторе даже признаков их вставки нет?
← →
Artemiy (2002-09-11 14:27) [8]cyborg
сорри за сайт...я его только создал исправлю
размер 1,3 мб.
на счёт процессора да, просто я его ещё не полн. оптимизировал, только переделал на Д3Д и фишки всякие добавил.
Что ты имееш ввиду под спрайтами? Картинки БМП в каталоге Objects?
Дак они и вставляются.
← →
Владимир Васильев © (2002-09-11 14:29) [9]Реально оптимизировать только использовав поддержку на уровне железа - либо Direct3D либо OpenGL
Страницы: 1 вся ветка
Текущий архив: 2003.02.13;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.018 c