Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Изометрия: пара вопросов


Страницы:   1 2

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]

кинь мне...
так значит у тебя в РПГухе небудет в одном тайле гора оружия валяться?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо