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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 16:41   #1
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию Занесеие параметров игрового обьекта в файл.

Мне нужно занести параметры обьекта в файл для того, чтобы была возможность изменять их после компиляции, а также разгрузить код. Я раньше не работал с файлами и плохо представляю себе как это сделать.
Вот проимер кода загрузки параметров в делфи:
Код:
//создание игрока 1
Player[1]:=TCharacter.Create;
Player[1].LoadMem('',100,'Player',5);//100 - жизни, Player -тип AI, 5 - количество анимаций
//описание анимаций
Player[1].UnitAnim[1].LoadMem('Res\CharAnims\Right.bmp',57,50,2,16);
Player[1].UnitAnim[2].LoadMem('Res\CharAnims\Up.bmp',43,49,2,16);
Player[1].UnitAnim[3].LoadMem('Res\CharAnims\Down.bmp',48,50,2,16);
Player[1].UnitAnim[4].LoadMem('Res\CharAnims\Left.bmp',57,50,2,16);
Player[1].UnitAnim[5].LoadMem('Res\CharAnims\Stop.bmp',57,50,1,1);
//установка скорости
Player[1].Xspeed:=3;
Player[1].Yspeed:=3;
Как сделать процедуру считывания параметров примерно из такого файла:
Код:
[Parametrs]
''
100
Player
5
[Animations]
[1]
Res\CharAnims\Right.bmp
57
50
2
16
[2]
Res\CharAnims\Up.bmp
43
49
2
16
[3]
........

Последний раз редактировалось Вадим Буренков; 27.04.2009 в 18:07.
Вадим Буренков вне форума Ответить с цитированием
Старый 27.04.2009, 17:07   #2
qpokyc
Форумчанин
 
Аватар для qpokyc
 
Регистрация: 07.04.2009
Сообщений: 117
По умолчанию

А в чем проблема: модуль IniFiles, класс TIniFile. Создавая указываешь имя файла, метод UpdateFile синхронизирует содержимое файла и данные объекта (если файл не существует - создаст его). Файл текстовый, архитектура такова:

[имя раздела]
имя параметра=значение параметра
имя параметра=...
...

Записать в параметр можно все что угодно, даже бинарные данные (правда, это изврат это какой-то). Очень просто и очень прозрачно.

Процедура будет выглядеть так:
Код:
var
  ifConfig: TIniFile;
begin
  ifConfig := TIniFile.Create('Name');
  ifConfig.UpdateFile;
  iVar := ifConfig.ReadInteger('Section','Param', Default); // читать
  ifConfig.WriteInteger('Section', 'Param', iVar);
  ...
  ifConfig.UpdateFile;
  ifConfig.Free;
end;
Недостаток - в иерархии тока 1 уровень и к файлу нужно полный адрес указывать. Если надо что-то посложнее - к твоим услугам XML. Можешь свой формат изобрести, а простейшие примеры работы с файлами в справке ищутся за 5 сек.
Copyright © qpokyc (qpy[the dog]bk.ru), 2008-2009 г.

Последний раз редактировалось qpokyc; 27.04.2009 в 17:14.
qpokyc вне форума Ответить с цитированием
Старый 27.04.2009, 17:19   #3
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

1.Любой параметр следует привязать к конкретной переменной.
2. Значения параметров устанавливать в процессе инициализации проекта (по выбору пользователя) - из начальных, можно записать в массив; из сохраненных - при закрытии приложения сохранять в файл, а при новом запуске считывать из файла и присваивать переменным; задавать при запуске - нужно разработать процедуры ввода значений при новом запуске приложения.
Для этого используют или меню или кнопки запуска приложения с правом пользователю выбора.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 27.04.2009, 17:53   #4
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

Я могу посоветовать поработать с XML. Классная ЧтУкА!
Levsha100 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ссылка с обьекта Lemo HTML и CSS 0 07.04.2009 21:12
Поворот обьекта на угол Lemo Помощь студентам 4 06.04.2009 19:46
Движение обьекта клавишами в с++ Grizzzli Помощь студентам 2 05.04.2009 12:43
Перемещение обьекта! TRIO JavaScript, Ajax 1 22.12.2008 19:49
Скорость движения обьекта shepelin Общие вопросы Delphi 9 23.01.2008 11:51