Добрый день)
Я новичок в создании игр, и мне интересно, как реализован инвентарь в игре и его взаимодействие с игроком. Является ли инвентарь отдельной структурой или это часть структуры игрока, как реализоваты "слоты" инвентаря, как индексируются вещи в инвентаре и т.д.
Если можно, то хотелось бы увидеть статью от Terminus'а (очень понравилась статья про сетевой взаимодействие, хотелось бы так же подробно).
Если статью писать смысла/желания/времени нет, то тогда я с вашего разрешения буду задавать вопросы. Не хотелось бы писать их сразу, чтобы не убивать возможность написания статьи, которая несомненно будет полезной не только мне, так как подобных статей я не встречал.
Инвентарь и персонаж
Автор
Zakfern
, Feb 25 2007 17:09
В теме одно сообщение
#1
Отправлено 25 February 2007 - 17:09
#2
Отправлено 28 February 2007 - 17:07
Статья - это вряд ли . Просто потому, что крайне мало времени. Но на вопросы попробую ответить...
Поскольку в игре все на классах, то и инвентарь - тоже класс. А инвентарь игрока - это экземпляр класса, оформленный в виде свойства класса игрока
Предметы хранятся в TList. Слоты - двумерная матрица 6x42. Т.е. потенциально в инвентаре может быть не более 252 предметов. Каждый слот хранит в себе ссылку (Pointer) на экземпляр предмета в TList. Позиция каждого элемента в инвентаре для экономим места описывается одним байтом по очевидной формуле y*6+x. Нехитрыми манипуляциями получаем положение в матрице.
Инвентарь реализован отдельным классом, т.к. инвентарь игрока - это частный случай. Есть так же "инвентарь магазина". А вот "инвентарь хранилища" физически является свойством, опять же, игрока. Когда поднимаем предметы из окошка "земли", то видим "инвентарь мешка". Окошко обмена между игроками тоже состоит из двух инвентарей: место для наших вещей и вещей того, с кем обмениваемся. В общем, использование инвентаря широко.
Вроде все
Поскольку в игре все на классах, то и инвентарь - тоже класс. А инвентарь игрока - это экземпляр класса, оформленный в виде свойства класса игрока
Предметы хранятся в TList. Слоты - двумерная матрица 6x42. Т.е. потенциально в инвентаре может быть не более 252 предметов. Каждый слот хранит в себе ссылку (Pointer) на экземпляр предмета в TList. Позиция каждого элемента в инвентаре для экономим места описывается одним байтом по очевидной формуле y*6+x. Нехитрыми манипуляциями получаем положение в матрице.
Инвентарь реализован отдельным классом, т.к. инвентарь игрока - это частный случай. Есть так же "инвентарь магазина". А вот "инвентарь хранилища" физически является свойством, опять же, игрока. Когда поднимаем предметы из окошка "земли", то видим "инвентарь мешка". Окошко обмена между игроками тоже состоит из двух инвентарей: место для наших вещей и вещей того, с кем обмениваемся. В общем, использование инвентаря широко.
Вроде все