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

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

Карта в БД [Delphi, Windows]


Ruslan_ ©   (2003-01-13 15:27:00) 

Привет всем разработчикам игр!
Возникла необходимость хранить карты в БД, в поле MEMO.
Процедура записи карты в БД (в поле MEMO) проста, а вот считывание карты из MEMO в массив сложнее.
Я решил проблему считывания таким образом:

procedure TForm1.LoadClick(Sender: TObject);
var
i,j,l:integer;
s:string;
x1,y1:integer;
begin
x1:=0;
y1:=0;
for i:=0 to Memo1.Lines.Count-1 do
begin
y1:=y1+1;
s:=Memo1.Lines.Strings[i];
for j:=1 to Length(s) do
begin
if copy(s,j,1)=" " then
begin
for l:=1 to 4 do
begin
if copy(s,j+l,1)=" " then
begin
x1:=x1+1;
if (x1<=100) and (y1<=100) then Map[y1,x1].Land:=StrToInt(Copy(s,j+1,l-1));
Break;
end;
end;
end;
end;
x1:=0;
end;
end;
--------------------
Map[y1,x1].Land –массив карты.

Данные в MEMO структурированы таким образом:

0 1 0 3 15 1 1 0 0 0 0 0 0 10 1
1 10 2 4 6 3 0 0 0 0 0 0 0 0 1
0 1 0 3 15 1 1 0 0 0 1 0 1 10 1
1 10 2 4 6 3 0 0 0 0 0 0 1 0 1
и т.д…
пробел в начале и в конце строки.

Такой вопрос: такая процедура считывания правильная?
Может есть вариант по серьезней?
Как бы вы сделали?
И еще один вопрос, можно ли увеличить размер MEMO и как?
БД - ACCESS


Mirovodin   (2003-01-14 13:05:00) [1]

На самом деле, достаточно удобно для тестирования. Если нужно удобное визуальное представление получить. Я читал про создание игры XXX God (не помню точно как называется, симулятор бога в общем :)) так вот, там файлы с характеристиками персонажей хранились в excel файлах. Тестерам было проще исправлять баланс, подводить статистику и т.д. Т.е. например характеристики оружия, монстров, стоимость и т.д. Потом конечно это все перенесли в бинарный формат.


cyborg   (2003-01-14 12:28:00) [2]

Честно говоря не понимаю, зачем карту игры хранить в БД?


Mirovodin   (2003-01-14 11:54:00) [3]

Тип поля TBlobField ( Delphi ), в Accsess нужно использовать бинарный формат данных.

http://delphi.mastak.ru/cgi-bin/faq.pl?look=1&id=988625472&n=14
http://www.symbol.ru/library/delphi_secrets/56.htm

Хранишь в этих полях не строковые значения уровня, а бинарные, так и считывать проще и быстрее работать будет.


Ruslan_   (2003-01-13 21:04:00) [4]

А примерчик можете написать (запись/чтение)?
И какой тип поля нужно использовать в БД


Mirovodin   (2003-01-13 15:48:00) [5]

А не проще ли TBlobField и TBlobStream ?


Наверх

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