![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редактор карт в DelphiX [Delphi, DelphiX, Windows]
Аццкий_рыцарь:) © (2006-01-24 01:15:00)я наверное уже задолбал вас со своими тупыми и ламерскими вопросами :)
вот вопрос :)
Расскажите мне плиз как создавать редактор карт в DelphiX. Тоесть, как делается так что потом карта сохраняется в отдельный файл, а потом загружается?
Кефир87 (2006-01-27 19:18:00) [101]
> Если надо, напишу статью прямо здесь.
Ты уже написал все что нужно в [6] 8)
Аццкий_рыцарь:) (2006-01-27 17:47:00) [102]НАПИШИ ПЛИЗ! :)
Cash (2006-01-27 17:20:00) [103]Если надо, напишу статью прямо здесь.
Кефир87 (2006-01-27 16:42:00) [104]Какие статьи?! Как организовать файл своего формата? Неее... врядли такие есть. Тут подумать надо. А научиться работать с файлами нужно было раньше чем заниматься разработкой игр 8)
Аццкий_рыцарь:) (2006-01-27 16:21:00) [105]ЭЭээээ.... ГГ... Я чета седня какой-то немного с будунца :) Ты не мог бы кинуть ссылочку на статью по этому? Чтоб там все внятно написано было без всяких типа: "синхронизовать интерполяцию частиц частей карты достаточно просто" :)
Cash (2006-01-27 08:47:00) [106]А я ведь не зря про формат файла говорил!
У тебя есть HEX редактор или FAR накрайняк.
Возми игруху, любую, главное с открытыми ресурсами.
Карты там обычно под *.map/*.m* расширениями файлов валяются.
Открой карту и посмотри в HEX виде. Там текст встречается очень редко,
чаще это диалоги или скрипты или описание карты. А все остальное - в
бинарном виде. Сделай как нибудь так:
Формат файла:
- Заголовок:
Сигнатура (если надо)
(какая нибудь последовательность байтов, символизирующая, что это тот
самый формат. Обычно сюда пихают 3-4 байта, куда записывают само
расширение файла. Типа в C&C Generals карта - *.map файл, и сигнатура
у него тоже 'MAPF')
Ширина карты
Высота Карты
Количество Объектов на карте
(это, чтобы дать проге понять сколько еще читать этот файл)
Описание карты (если надо)
- Тело карты
(сюда надо бы перенести масив индексов карты, они там Integer типа,
так что размер масива вроде 4*MapWidth*MapHeight)
- Тело объектов карты
Сигнатура (если надо или охота)
тело первого объекта
тело второго объекта
------
тело n-го объекта
eof.
Организовать это в файловом потоке достаточно просто.
Аццкий_рыцарь:) (2006-01-27 01:39:00) [107]Эх! счас сяду делать редактор :)
PAVIA (2006-01-27 00:45:00) [108]Аццкий_рыцарь
Так и сохрони объекты.
Весч элементарная.
Все просто если объект храняться как матрицу. Так и сохрани ее.
А если хранишь как спрайты так и сохрани их.
for i:=0 to DXSpriteEngine^.Engine.Count-1 do
begin
Spr_Tmp:=DXSpriteEngine^.Engine.Items[i];
//тут уже твоя фантазия как хранить.
end;
Unsigned (2006-01-27 00:21:00) [109]Делай так. Игровое поле представляешь в виде прямоугольной матрицы N*M.
То есть что-то типа Map : array[0..n-1,0..m-1] of byte. Каждому коду в соответствие ставишь какой-то объект, например 0-трава, 1 - камень.
Потом можешь эту матрицу сохранять\загружать. Загружаешь и в соответствии с кодами в ячейках создаешь объекты. Их координаты можно найти так:
Х:=i*MapObject.Width,Y:=j*Object.Height, где i,j - координаты объекта в матрице.
Аццкий_рыцарь:) (2006-01-27 00:06:00) [110]Я карту создавал через semapsize(x,y)
А можно поподробней про массив?
Например как сделать чтоб когда загружаешь карту, то создавалась не просто как Bitmap карта... Например там есть объекты с которыми взаимодействует игрок. А это отдельные спрайты.
Я тут думал... А нельзя просто чтоб редактор карт сохранял координаты каждого объекта? а потом делфи читал строки и по ним создавал там что-то?
например я в редакторе карт создал камень в координатах 100, 130 и сохранил. В блокноте создается строка типа r1 100, 130. А делфи смотрит если строка начинается с r1, то надо создать камень в таких координатах.
Shirson (2006-01-24 05:50:00) [111]Это вопрос не столько по DelphiX, сколько по программированию.
У тебя карта матричная? Всмысле может быть представлена прямоугольным массивом? Если да - задачка для начинающих "как сохранить массив в файл".