Инвентарь с предметами разного размера

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Инвентарь с предметами разного размера

Сообщение echo 23 авг 2012, 11:12

Здравствуйте, это снова я :)

Вопрос вот в чём - как сделать в инвентаре ячейки разного размера. Вот кладётся предмет в инвентарь (параметры ширины и высоты берутся из скрипта предмета, допустим iconSizeX и iconSizeY) и... чего то я не пойму как так сделать, чтобы они правильно распологались друг за другом, если они все разного размера? :-?

Вот кусочек кода:

Синтаксис:
Используется csharp
        foreach (InventoryItem item in this.currentChar.inventory)
        {
                        itemButton = new Rect(itemButton.x, itemButton.y, item.iconSizeX, item.iconSizeY);
                        itemButton.x += (item.iconSizeX + 2f);


Но это неправильно, потому что берётся значение предмета который добавляется и они все вразнобой идут. А там ещё высота будет, пустые места пропущенные... Ааа! Ничего не понимаю! Помогите! :)
_ttp://zero0.16mb.com/Core/
_ttp://www.indiedb.com/games/zer0
Аватара пользователя
echo
UNIт
 
Сообщения: 140
Зарегистрирован: 30 окт 2011, 17:27
Откуда: От верблюда
  • Сайт

Re: Инвентарь с предметами разного размера

Сообщение seaman 23 авг 2012, 11:47

Проще масштабировать предметы под ячейки.
seaman
Адепт
 
Сообщения: 8352
Зарегистрирован: 24 янв 2011, 12:32
Откуда: Самара

Re: Инвентарь с предметами разного размера

Сообщение echo 23 авг 2012, 12:29

А как это? Есть такой примерчик?
_ttp://zero0.16mb.com/Core/
_ttp://www.indiedb.com/games/zer0
Аватара пользователя
echo
UNIт
 
Сообщения: 140
Зарегистрирован: 30 окт 2011, 17:27
Откуда: От верблюда
  • Сайт

Re: Инвентарь с предметами разного размера

Сообщение Woolf 23 авг 2012, 12:59

Я делал так - инвентарь состоит из мелких ячеек размером 16х16 пикс. Каждый предмет состоит из нескольких таких ячеек, к примеру, 3 ячейки на две. Как ищется место для предмета - в массиве инвентаря там, где лежат предметы, ячейки отмечаются, как занятые. В нем проводится поиск прямоугольника нужного размера из свободных ячеек (всего четыре вложенных цекла, ничего сложного). Профит.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Инвентарь с предметами разного размера

Сообщение Sality 23 авг 2012, 13:25

Интересная задача, жаль мне такой пока не попадалось. Как то делал автоматическое расположение корабликов по клеточкам в обычном морском бое. (двухпалубные трехпалубные и тд.) Очень понравилась задача =)
Аватара пользователя
Sality
Старожил
 
Сообщения: 771
Зарегистрирован: 26 ноя 2011, 15:31
Откуда: Украина

Re: Инвентарь с предметами разного размера

Сообщение Receptor 23 авг 2012, 13:37

echo А как у тебя предметы должны отображаться? В смысле в ячейке просто копия 3D Модели или как? Рисунок? Т.е. не совсем понятно что в выхлопе должно получится, лично для меня :)
_VK.com
Аватара пользователя
Receptor
Адепт
 
Сообщения: 1706
Зарегистрирован: 22 ноя 2011, 07:09
Откуда: Волгодонск

Re: Инвентарь с предметами разного размера

Сообщение echo 23 авг 2012, 13:43

Woolf писал(а):Я делал так - инвентарь состоит из мелких ячеек размером 16х16 пикс. Каждый предмет состоит из нескольких таких ячеек, к примеру, 3 ячейки на две. Как ищется место для предмета - в массиве инвентаря там, где лежат предметы, ячейки отмечаются, как занятые. В нем проводится поиск прямоугольника нужного размера из свободных ячеек (всего четыре вложенных цекла, ничего сложного). Профит.


Принцип я понял, но это для вас ничего сложного, я полгода назад вообще не знал что такое массивы :) Что-то не соображу как этот код должен выглядеть...

P.S. Иконка (текстура) в общем наподобие пресловутого сталкера
_ttp://zero0.16mb.com/Core/
_ttp://www.indiedb.com/games/zer0
Аватара пользователя
echo
UNIт
 
Сообщения: 140
Зарегистрирован: 30 окт 2011, 17:27
Откуда: От верблюда
  • Сайт

Re: Инвентарь с предметами разного размера

Сообщение pod4444 23 авг 2012, 14:53

иконка занимает одну клетку или занимаемая площадь зависит от размера иконки?
Аватара пользователя
pod4444
Старожил
 
Сообщения: 721
Зарегистрирован: 20 янв 2012, 22:02
Откуда: Воронеж
Skype: pod4444
  • Сайт

Re: Инвентарь с предметами разного размера

Сообщение echo 23 авг 2012, 15:13

Ну грубо говоря - автомат - 3 клетки, ракетница - 6 клеток и так далее. Вообще я просто хотел сделать их по размеру больше и меньше и чтоб они друг за другом занимали место в инвентаре, когда место кончается то и инвентарь тоже. Но вот теперь понял что так не получится.
_ttp://zero0.16mb.com/Core/
_ttp://www.indiedb.com/games/zer0
Аватара пользователя
echo
UNIт
 
Сообщения: 140
Зарегистрирован: 30 окт 2011, 17:27
Откуда: От верблюда
  • Сайт

Re: Инвентарь с предметами разного размера

Сообщение Woolf 23 авг 2012, 18:20

echo писал(а):
Woolf писал(а):Я делал так - инвентарь состоит из мелких ячеек размером 16х16 пикс. Каждый предмет состоит из нескольких таких ячеек, к примеру, 3 ячейки на две. Как ищется место для предмета - в массиве инвентаря там, где лежат предметы, ячейки отмечаются, как занятые. В нем проводится поиск прямоугольника нужного размера из свободных ячеек (всего четыре вложенных цекла, ничего сложного). Профит.


Принцип я понял, но это для вас ничего сложного, я полгода назад вообще не знал что такое массивы :) Что-то не соображу как этот код должен выглядеть...

P.S. Иконка (текстура) в общем наподобие пресловутого сталкера


Вот мой инвентарь, это двумерный массив ячеек (обведено синим). Маленькие серые ячейки 16х16 - это и есть ячейки инвентаря. Размер каждого предмета кратен этим ячейкам. Либо 2х2, либо 4х4, или любой другой. Ячейки, которые заняты я обвел красным, у них стоит в массиве признак false. Свободные - true.

Изображение

Теперь вы хотите положить в инвентарь предмет. Вы знаете, что он занимает размер, к примеру, 8х2 ячейки. Вам нужно просмотреть массив и найти (или убедиться, что его нет) свободный прямоугольник такого размера. Решите эту задачу и получите своё решение ) Это не сложно, работа с циклами простая. А код писать я вам не буду, иначе вы ничему не научитесь.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Инвентарь с предметами разного размера

Сообщение echo 23 авг 2012, 19:07

Ха, симулятор рыбалки? Суровый :)

Ну спасибо и на этом :)
_ttp://zero0.16mb.com/Core/
_ttp://www.indiedb.com/games/zer0
Аватара пользователя
echo
UNIт
 
Сообщения: 140
Зарегистрирован: 30 окт 2011, 17:27
Откуда: От верблюда
  • Сайт


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 21