![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа над RPG
TButton © (2003-04-06 20:52:00)
собсна вопросов возникает куча определенного ответа на них у меня покамест нету.
например
-как реализовать шмотки. создать record в котором собраны все возможные параметры или как-то еще.
-как реализовать разл. воздействие на чара. Например отравление или наркотики (сначала +++ потом ------)
-как лучше реализовать самого чара.
и подобные. если у кого есть мысли - пишите, обсудим.
TButton (2003-04-16 17:47:00) [41]
2 cyborg ©
т.е. я так понял надо писать офигенно сложные процедуры сохранения и загрузки?
cyborg (2003-04-15 19:00:00) [42]
По сохранению, в начале пишешь кол-во записей, затем эти записи читаешь.
TButton (2003-04-15 18:33:00) [43]
2 cyborg ©
Да. спасибо. будем думать.
значит по части шмоток решение "пихать все свойства в один объект" приплюсовать тип и в зависимости от типа выбирать нужные свойства.
А как насчт сохранения динамических массивов? с учетом того что ети массивы - часть сложной структуры?
cyborg (2003-04-14 18:06:00) [44]Сделай простую запись. В ней все возможные волшебства, например:
TThing = record
ID ( шапка, кольцо, меч и т.д.)
Сделай простую запись. В ней все возможные волшебства, например:
TThing = record
ID : Cardinal; //Идентификационный номер вещи
ThingType : Cardinal; //Тип вещи (шапка, кольцо, меч и т.д.)
Strong : Byte; //Текущее значение поломанности
MaxStrong : Byte; //Максимальное значение крепкости предмета
Ice : Byte; //Холод
Fire : Byte; //Огонь
... и т.д. все возможные магические значения
end;
Если значение, например, холода больше нуля, то эта вещь имеет магию холода. А смотря что за вещь, эта магия используется по назначению, если меч, то наносить повреждение холодом, если щит, то прибавить защиту от холода. Мысль ясна?
neuro (2003-04-14 17:54:00) [45]
Вас спасет ООП и сериализация.
TButton (2003-04-14 17:31:00) [46]
А надысь возник еще один вопрос, как всю эту динамическую муть сохранить в файлик? т.е. объек персоонажа включает в себя несколько динамических массивов, но иногда этот объект надо сохранять... а потом еще и загружать... вот...
TButton (2003-04-13 09:57:00) [47]
и все таки, если есть у кого солюшен данной траблы, пожалста отметьтесь.
TButton (2003-04-13 00:47:00) [48]
а вот!
Juster~ (2003-04-12 21:34:00) [49]
а я то думал, это я один, дурак, тут по выходным шастаю...
TButton (2003-04-12 20:58:00) [50]
попытался воспроизвести эту структуру... не работает. TKey(inv[1]) вызывает Invalid Typecast
TButton (2003-04-09 20:14:00) [51]и все-таки, реально ли сделать так
type
TThing=object
...
end;
TGun=object(TThing)
( TThing)
и все-таки, реально ли сделать так
type
TThing=object
...
end;
TGun=object(TThing)
...
end;
TKey=object(TThing)
...
end;
...
inv:array[1..10] of TThing;
gun1:TGun;
key1:TKey;
...
inv[1]:=key1;
inv[2]:=gun1;
...
TButton (2003-04-08 09:52:00) [52]
>к герою можно привинтить коллекцию модификаторов и для каждого
>хранить время жизни. Тогда при тиках основного таймера игры это
>время жизни можно уменьшать и при достижении 0 снимать эффект.
я об этом собсна и говорил
>а можно и коллекцию - там ведь уже почти все что нужно
>реализовано
лучше - массив :). и не важно что кое-что придется переписывать. когда сделал сам:
1. все гораздо понятнее
2. всегда можно модифицировать
jel (2003-04-08 09:21:00) [53]
> 2 jel ©
> т.е. создать класс TThing, а от него все остальные. а инвентарь
> тогда можно сделать просто в виде массива inv:array of TThing?
Можно массив, а можно и коллекцию - там ведь уже почти все что нужно реализовано. А по поводу зелий всяческих к герою можно привинтить коллекцию модификаторов и для каждого хранить время жизни. Тогда при тиках основного таймера игры это время жизни можно уменьшать и при достижении 0 снимать эффект.
TButton (2003-04-08 01:23:00) [54]
так это еще и таймер создавать? рун-тайм? и обработчик для него тоже рун тайм? я думал примерно так: у зелья есть длительность и сила воздействия, поэтому к чару надо добавлять структурку типа динамического массива с применеными на него зельями (сила воздействия и скока времени осталось)
2 jel ©
т.е. создать класс TThing, а от него все остальные. а инвентарь тогда можно сделать просто в виде массива inv:array of TThing?
mmmh (2003-04-07 20:50:00) [55]
шмотки в принцип просто Создаем ддл с кучей шмоток, и вытаскиваем... например в imagу
2 данные лучше в начале загружать в массив из файла....
по закрытию сохранять.........
Воздействие на чела так
создаем таймер, enabled:=true( после пременения) в нем описываем сначала +++ а потом --- и enabled:=false
Рекорды в принципе не люблю...........
Вообщем когда-то писал подобное
jel (2003-04-07 12:12:00) [56]
Сдается мне, что задача как раз для классического ООП. Например создать класс базовой шмотки у которой есть например вес и картинка и от него наследовать всяческие зелья, оружие, книги. Проще будет, чем универсальную record разрабатывать. А если потом добавить что придется?
cyborg (2003-04-07 10:56:00) [57]
Что такое чара? :)
TButton (2003-04-07 09:57:00) [58]
2 cyborg ©
почему сразу в файлах! в опреативе просто ввиде стринглиста. луд и сэйв шоб грузить и сохранять чара и шмотки.
cyborg (2003-04-07 09:34:00) [59]
Ой... только не делай ты хранение параметров героя и прочих в файлах, это не игра будет, а большой своп-файл, куда не ткнёшь шуршать начнёт.
TButton (2003-04-06 22:48:00) [60]
гыыы.... мдаа... а вобщем-то я так и делал...
(!) Идейку мне подкинули: офыормить это все текстом типа инифайла. тогда получается маленький объект
private
info:TStringList;
public
procedure SaveToFile(filename: string);
procedure LoadFromFile(filename: string);
function GetValue(section, name: string): string;
procedure WriteValue(section, name, value: string);
end;
нужно правда еще кой-чо под латать, но в целом идея неплохая...