Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.07.2009, 01:48   #1
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию База данных в игре

Доброе время суток.
Решил я написать игрулину, и пришла задача реализовать базу данных в игре. Как это можно сделать? Я думал про ини файлы.
задача - что бы в базе было название, путь к картинке, и описание.
массивы не предлагать, т.к. в дальнейшем база может быть настолько велика что оперативу будет жрать не мерено.
спасибо.
unicode вне форума Ответить с цитированием
Старый 01.07.2009, 08:37   #2
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Немного не понятно назначение базы данных
Цитата:
задача - что бы в базе было названиечего?, путь к картинке, и описаниечего?.
Если назначение базы - поддержка игровых ресурсов (рисунки, карты уровней, значения величин переменных, текстовые квесты и т. п.), то для этого подходят как ини - файлы , так и просто текстовые, файлы ресурсов (для изображений) или же dll.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 01.07.2009, 11:07   #3
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию

Пример:
Название - AMD Athlon 64 X2 2.2GHz
картинка - путь к фотке
Описание - Два ядра и т.д.
unicode вне форума Ответить с цитированием
Старый 01.07.2009, 22:42   #4
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
Сообщение от unicode Посмотреть сообщение
Пример:
Название - AMD Athlon 64 X2 2.2GHz
картинка - путь к фотке
Описание - Два ядра и т.д.
Ну и как Вы себе представляете использование этих данных в игровой программе?
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 01.07.2009, 23:03   #5
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

...XML or Access...
Levsha100 вне форума Ответить с цитированием
Старый 02.07.2009, 00:13   #6
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию

@DeKot, AMD Athlon 64 X2 2.2GHz находится в ComboBox, картинка и описание загружается соответственно в TImage и Label, когда в ComboBox находится определенное название, тоесть AMD Athlon 64 X2 2.2GHz

Последний раз редактировалось unicode; 02.07.2009 в 00:15.
unicode вне форума Ответить с цитированием
Старый 02.07.2009, 11:28   #7
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Предлогаю новый формат разработать для удобства:
Код:
type
 TDataBase = record
    BaseName,PathImage,description  : string;
  end;
VintProg вне форума Ответить с цитированием
Старый 02.07.2009, 11:33   #8
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию

@VintProg, спасибо, попробую
unicode вне форума Ответить с цитированием
Старый 02.07.2009, 11:52   #9
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Можно сделать и так:
Код:
type
 TDataBase_Header = record //Голова файла
   amount : integer;   //Кол-во  TDataBase
  end;

 TDataBase = record
    BaseName,PathImage,description  : string;
  end;
Можно и так:
Код:
type
 TDataBase_Header = record //Голова файла
   amount : integer;   //Кол-во  TDataBase
  end;

 TDataBase = record
    BaseName,PathImage,description  : array[0..255] of char;
  end;
потом создайте объект TFileStream;

и записывайте и читайте структурой TDataBase
а эту TDataBase_Header можно использовать для кол-во циклов


Код:
var
FileBs : TFileStream;


function CreateBs(fileName:string):integer;
var
DbHead:  TDataBase_Header;

begin
 FileBs := TFileStream.create('Data.db',fmCreate);
 FileBs.Read(DbHead,SizeOf(TDataBase_Header));
 result := DbHead.amount;
end;

function ReadBase(index:integer):TDataBase;
begin

for i:=0 to index do
 begin
  FileBs.Read(DataBase,SizeOf(TDataBase));
  result := DataBase;
 end;

end;
примерно так,
пока это 1-способ.
VintProg вне форума Ответить с цитированием
Старый 02.07.2009, 12:47   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а зачем заголовок-то?
до EOF читать же можно
кстати а String же не имеет фиксированной длинны...аккуратнее с этим.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
База данных Rebel123 БД в Delphi 4 21.06.2009 01:00
! База данных ! LordNighton Microsoft Office Excel 1 20.11.2008 22:25
База данных Alex XXX Помощь студентам 3 08.08.2008 10:23
База данных Andr180nag JavaScript, Ajax 3 02.08.2008 14:01
База данных xakkkkker БД в Delphi 1 22.03.2008 12:03