![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение игры [Delphi]
Hater © (2004-05-20 07:45:00)Я создаю игру - текстовый квест. У героя будет несколько характеристик. Как запрограммиравать сохранение? Помогите пожалуйста!
cyborg (2004-05-21 09:13:00) [21][12] Hater (21.05.04 07:55)
А теперь напиши как ты видишь написание кода под это дело, глядишь и сам понимать начнёшь.
Hater (2004-05-21 07:55:00) [22]to cyborg:
Писать нужно жизнь - она будет уменьшатся после встречь с гопниками и тд.;/;
Ну, сохранение позиции я уже знаю как (через переменную плюс число);
Писать ещё некоторые вещи - типа артефактов: например, без калош низзя перейти огромное болото итд. итп;
.... ну на первых порах и всё. Разве что из-за красоты можно добавить отношение всяких людишек.
wiz (2004-05-21 05:01:00) [23]2 kas-t: вначале их пять, затем 10, потом пол-мега... А ini'шник это текстовая инфа, поэтому ты будешь тратить время на перевод string -> int/float.
---
...здесь был Красный Космический Гонобобель
kas-t (2004-05-20 23:28:00) [24]А что ini так долго читаются? Мне кажется, на прочтение пяти (и более) строк из ini потребуется не больше времени, чем приведенным Wiz примером. Только вот с ini проще работать.
Зы: Ну разве что может не пойти, потому что ini будет просто отредактировать ручками... :)
wiz (2004-05-20 21:59:00) [25]2 WinPopka: можно и первым способом, но второй imho менее геморройный.
Я имел ввиду, если в проекте все параметры героя собраны в одну запись (record), то записать её в файл - пять строк кода. Загрузить - еще пять. Если не собраны, то лучше (imho) собрать.
А если там уже сделано всё через ООП ( TPlayerStats = class (TObject) ), то вопросов таких задаваться не должно (т.к. понять ООП imho чуток труднее, чем вывод в файл всяцих там байтиков)
---
...превратился в Красный Космический Гонобобель и ушуршал...
WinPopka (2004-05-20 20:35:00) [26]wiz, тогда в процедуре какой надо все сохранить надо к этому например intelegment`y приравнять переменую временную в которой этот элемент сидит?
типа int:=intelgment; а дальше сохранять уже можно.Или напрямую указывать в качестве переменных вот те строки из класса? а в файл автоматом друг за другом все сохранит?
wiz (2004-05-20 20:24:00) [27]2 Sanek_metaller:
Вот после таких заявлений "Юзай ини" и получаются сохранение/загрузка по пол-часа.
А про реестр я вообще молчу, ибо игрушка мало того, что засоряет реестр (созданный для других целей), но еще и перестаёт обладать переносимостью. А (например) мне иногда хочется перетащить сэйв с компьютера на фирме на домашний комп и обратно.
2 Hater:
Самый простой (пусть кто-нибудь придумает проще для статических структур) способ в следующем:
type
TPlayerStats = record
Intelligent:integer;
Experience:integer;
...
end;
var
PlayerStats:TPlayerStats;
...
procedure SaveHero(filename:string);
var
f:file of TPlayerStats;
begin
assignfile(f,filename);
rewrite(f);
write(f,PlayerStats);
closefile(f);
end;
Это не самый лучший способ, но с него можно стартовать.
---
...блондинка за рулём, все равно что обезьяна с гранатой...
Sanek_metaller (2004-05-20 19:47:00) [28]Юзай ини,или реестр,гораздо легче чем файлы...
cyborg (2004-05-20 19:19:00) [29]Не знал, что есть профуровень писания в файл :).
Так что писать то нужно, перечисляй?
Hater (2004-05-20 19:07:00) [30]Работать как, ассигны там всякие. Это? Умею, но не на профуровне. А писать действительно незнаю...
cyborg (2004-05-20 08:50:00) [31]Ответь на вопрос:
Умеешь ли ты работать с файлами?
ответ нет - читай справки, примеры и всё поймёшь
ответ да - ты врёшь, так, как твой ответ "нет", иначе бы такой вопрос не задавал ;)
Если всётаки умеешь работать с файлами, но не знаешь чего туда писать :), скажи чего нужно записать, подскажем как.
kas-t (2004-05-20 08:24:00) [32]Если хочешь сохранять все значения переменных в файл, то тебе нужно копать в сторону IniFiles. Они просты и удобны в использовании.
маг Гыр (2004-05-20 08:03:00) [33]Создай переменную счётчик (N), к которой каждый раз при правильном ответе будет присваиваться N:=N+1; (при сохранении - записывай в файл эту переменную)