![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изометрия: пара вопросов
greenrul © (2003-04-27 11:46:00)
Я решил сделать изометрическую RPG - карты у меня хранятся в следующем формате - папка map_name/ground.txt - текстовый массив, описывающий землю (нулевой уровень), потом layer1.txt, layer2.txt и т.д. - в layer"ах хранится информация о вещах, положенных на землю, зданиях и пр.
Например: одна клетка - нулевой уровень- асфальт, 1 слой - кровь, 2 слой - пистолет. В итоге на асфальте в луже крови лежит пистолет.
Не подскажете, может можно это более оптимально организовать?
Второй вопрос - как совмещать эти слои? У меня есть массив изображений Tiles[1..n,1..n] of TTile. Нужно совместить 3 image - мне стоит делать
b1:=TBitmap.Create;
b2:=TBitmap.Create;
b3:=TBitmap.Create;
b1.LoadFromFile("c:\1.bmp");
b2.LoadFromFile("c:\2.bmp");
b2.Transparent:=True;
b3.Width:=b1.Width; b3.Height:=b1.Height;
b3.Canvas.Draw(0,0,b1);
b3.Canvas.Draw(0,0,b2);
Image1.Picture.Assign(b3);
b1.free;
b2.free;
b3.free;
end;
или есть более оптимальный вариант?
И последнее - если у меня тайл уходит за пределы экрана, но не уничтожается, система все еще им загружена? То есть если сделать огромный массив TImageSprite на всю локацию, а показана всегда будет только одна часть? Например при скроллинге будут просчитываться все спрайты, если координаты <0 или больше ширины/высоты экрана то Visible:=false;
Опять, же есть ли более оптимальный вариант?
Заранее прошу не посылать читать руководства с Daddy DelphiX и пр. - там все слишком муторно - человек использует свой класс, а о нем ни слова...
Плохой человек (2003-04-30 18:46:00) [1]
>P.S. Taldur demo у меня не работает - компилится, но дальше - ошибка при запуске
Вот я и говорю. Он пашет под Delphi 3.
Namo (2003-04-30 18:24:00) [2]
2 greenrul
Идеально просто, сначала нарисовать одну, а потом другую в твою ImageSprite.Image . а выше будет та, которая позже нарисуется.
тут уж просто все
Feanturi: Valanyё Mandos
greenrul (2003-04-30 18:01:00) [3]
2Плохой человек : следующий вопрос - как совместить две картинки из DxImageList совместить в одну ImageSprite.Image?
Желательно чтоб приоритет по z был - первая вверху, вторая - внизу
P.S. Taldur demo у меня не работает - компилится, но дальше - ошибка при запуске
Плохой человек (2003-04-30 17:42:00) [4]
>слоев пока пять - в каждом слое может что-то лежать - оружие, труп и т.д.
Не, это плохой подход. Рано или поздно наступит ситуация, когда слоёв не хватит, чтобы изобразить всё.
greenrul (2003-04-30 17:34:00) [5]
2НАРОД:
хм... по поводу спец. файла с оружием - может быть... Вы скорее всего идею не поняли - слоев пока пять - в каждом слое может что-то лежать - оружие, труп и т.д. Чем вам такой подход не нравится? Сами же сказали, что тормозить не будет
Namo (2003-04-30 13:29:00) [6]
> не совсем понимаю как он в тексте хранит карты
номера тайлов.
Feanturi: Valanyё Mandos
TButton (2003-04-30 13:22:00) [7]
я, правда, не совсем понимаю как он в тексте хранит карты, но думаю что прописать в одном байте все шмотки никак не получится... если он тока не хранит карту в виде скрипта...
Namo (2003-04-30 13:13:00) [8]
а что мешает несколько раз нарисовать на одном месте шмотки и оружие??? просто массив должен быть типизированным, например TTile, где будет записываться кол-во, тип, и т.п. шмоток и оружия.
Feanturi: Valanyё Mandos
TButton (2003-04-30 06:51:00) [9]
привожу пример. JA2(2,5) Fallout(2,3) там в одном тайле может лежать несколько шмоток причем видно что ето не мешочек а шмотки, рисуются одна поверх другой. а вот к примеру Diablo(2) там в одном тайле 1 шмотка. а две никак нельзя. вобщем я бы сделал отдельный массив в котором прописано все оружие, что валяется (с координатами, т.е. где валяется). и при прорисовке сканировал бы его, на предмет попадания шмотки в видимую область... примерно так замутил бы...
Namo (2003-04-29 21:57:00) [10]
> Так и будет - гора оружия на одном тайлике
ну уж нет! тайл - ОДНА картинка, т.е. у тя должна быть картинка с изображением горы оружия (аналог мешочка), и ты его рисуешь, а в слое, уже указывается, сколько там какого оружия. главное, чтоб слой был какго-то типа, со свойствами, вроде этого...
Feanturi: Valanyё Mandos
Плохой человек (2003-04-29 21:38:00) [11]
>Накладывается layer1 на layer2 и т.д.
Но у тебя же всего один слой для оружия. Ка кты можешь оружие перебросить и на второй слой, когда там должны быть кости или что-то другое. Или ты для каждого тайла каждого слоя грузишь отдельную картинку????
greenrul (2003-04-29 21:16:00) [12]
2 TButton, Плохой человек : Так и будет - гора оружия на одном тайлике.
Накладывается layer1 на layer2 и т.д.
Плохой человек (2003-04-29 21:11:00) [13]
2 TButton:
>так значит у тебя в РПГухе небудет в одном тайле гора оружия валяться?
Он может сделать специальный тайл - гора оружия, который будет в одном из этих слоёв.
Namo (2003-04-29 19:38:00) [14]
> вообще тормозить?
много чего влияет, даже железо, по крайней мере разница на 566 и на 1.7 будет! у меня по разному, в зависимости от загруженности...
Feanturi: Valanyё Mandos
greenrul (2003-04-29 19:27:00) [15]
2Namo:
> думаю нет.
А вообще тормозить?
> открою блокнот и все поменяю. :((
Я имел в виду в самой игре =)
Namo (2003-04-29 18:29:00) [16]
а еще в некоторых играх рисуют мешочки вместо упавших вещей. хотя это лучше для ФРПГ. но тада останется только рисование мешочка и сохранение его содержимого.
> Так будут ли ОЧЕНЬ СИЛЬНО тормозить игру эти спрайты
думаю нет.
> которые менять нельзя
открою блокнот и все поменяю. :((
Feanturi: Valanyё Mandos
greenrul (2003-04-29 18:14:00) [17]
TButton:дык этож временно... потом будут ground1.txt и ground2.txt которые менять нельзя, это что-то типа стен, асфальта и пр. что не уничтожается.
Так будут ли ОЧЕНЬ СИЛЬНО тормозить игру эти спрайты?
TButton (2003-04-29 18:07:00) [18]
здесь трудно, то что оружие у него одна штука в одном слое, слоев всего 5, и три уходят на БэкГраунд :(((...
Namo (2003-04-29 17:26:00) [19]
> в одном тайле гора оружия валяться
а что здесь трудного?
Feanturi: Valanyё Mandos
TButton (2003-04-29 02:13:00) [20]
кинь мне...
так значит у тебя в РПГухе небудет в одном тайле гора оружия валяться?