![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин Подтвердите свой е-майл
Регистрация: 25.02.2008
Сообщений: 289
|
![]()
Здравствуйте. Есть игра, в ней разные предметы по типу(оружие, броня, бижутерия и пр.). Кроме того предметы делятся по классам игроков, то есть, например, есть топор для воина, а есть топор для мага. И так все предметы. Ну и конечно же все предметы делятся по уровням(то есть отдельно посох для мага 1-го уровня, и отдельно для мага 2-го). Кроме того, предмет можно улучшать. То есть для предметов необходимо хранить:
1) уровень 2) класс персонажа 3) название 4) ссылку на картинку 5) характеристики(несколько, причем набор для всего разный) 6) характеристики, которые предмет получит после улучшения Про последний пункт - он нужен из-за разности классов, уровней, и типов предметов. Собственно подскажите структуру данных для хранения. P.S. может разделом ошибся?
Упс...
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
![]()
Двухмерный массив - удобно и быстро.
У меня по крайне мене в проекте так реализовано, не жалуюсь. |
![]() |
![]() |
![]() |
#3 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
L_M, создай собственный тип для предметов, и привяжи к динамическому массиву, например так:
Код:
Код:
Также можно создать массив конкретно для персонажа (игрока), там будут в ячейках индексы, указывающие на общий массив вещей.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Последний раз редактировалось Beermonza; 15.11.2010 в 00:29. |
![]() |
![]() |
![]() |
#4 |
Форумчанин Подтвердите свой е-майл
Регистрация: 25.02.2008
Сообщений: 289
|
![]()
То есть хранить в объекте или массиве требования предмета, а для использования проходить весь массив и сравнивать допустимые свойства? То есть если нужен топор, то просматривается весь массив, сравнивается свойство "тип", "уровень" и "класс".
Я просто предполагал сделать индексами уровень для простоты обращения. Ну и класс собственно(m[1]="предмет1 класса1 уровня1", m[2]="предмет1 класса2 уровня1", m[3]="предмет1 класса1 уровня2", m[4]="предмет1 класса2 уровня2"...). То есть меня волнует вопрос, как бы это сделать быстро. Но для разных предметов создавать разные массивы? Или придумать какую-нибудь извращенную схему поиска и запихнуть все в 1 массив? Например создать дополнительный массив границ типов предметов... Хотя мне сейчас пришла идея генерировать ключи, т.е. использовать ассоциативный массив. Попробую так, поиск должен стать линейным тогда...
Упс...
|
![]() |
![]() |
![]() |
#5 |
Инженер ИС
Старожил
Регистрация: 13.12.2006
Сообщений: 2,671
|
![]()
Поиска по всему массиву быть в принципе не может. Вот на карте клетка, в ней написано, например: {3}{25}{138} - это в байтах, первый указывает, что это какая-то вещь (все динамические массивы игровых объектов должны иметь номера, чтобы движок сразу обращался к нужному массиву), второй и третий - это Word цифра (после преобразования 0-65535), она указывает на конкретную вещь в массиве всех вещей. Поиска нет, сразу конкретный предмет. Так же он будет отмечаться в магазине на прилавке, в инвентаре, только там первый байт уже не нужен, поскольку в инвентаре только вещи, объектов нет.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
|
![]() |
![]() |
![]() |
#6 |
Форумчанин Подтвердите свой е-майл
Регистрация: 25.02.2008
Сообщений: 289
|
![]()
Beermonza, да, спасибо, я пришел примерно к такому же виду.
Упс...
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Структура данных для кубика Рубика | Gut | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 0 | 07.11.2010 15:48 |
Структура для хранения произвольной мелодии | LordotU | Помощь студентам | 5 | 02.10.2010 22:21 |
оптимальное решение для хранения данных | D.O.G | БД в Delphi | 8 | 16.09.2010 15:16 |
найти программу для хранения базы данных | t@sh@ | Софт | 5 | 29.11.2009 00:27 |
Структура хранения МАТЕМАТИЧЕСКИХ функций | Levsha100 | Общие вопросы Delphi | 2 | 02.05.2009 22:47 |