Инвентарь

  Вход на форум   логин       пароль   Забыли пароль? Регистрация
On-line:  

Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Опытных) / Инвентарь

Страницы: 1  новая тема

Автор Сообщение

гроссмейстер
Группа: Сообщество GM
Сообщений: 148
Добавлено: 09-02-2006 17:21
На данный момент я могу без проблем делать инвентарь с зарезервированными местами под вещи - его сделать не сложно... Просто напротив вещи пишешь число, которое может быть от 0 до какого-то значения... Например в инвентаре всего 3 вида вещей - это будет 3 глобальных переменных...

А вот как мне сделать следующее: Я покупаю пирожок, он отображается в 1 строке инвентаря, покупаю чай - он во второй отображается, булочку - в третьей и т.д. То есть если в 1 строку уже помещён предмет, то следующий предмет помещается уже в следующую строку. Кол-во строк может быть фиксированным - например 4 строки (не > 4 предметов)... Причём сами предметы в инвентаре отображаются не спрайтами, не обьектами, а просто рисуются обычным текстом...

А потом я, например, кушаю пирожок, он исчезает из 1 строки, а чай и булочка перемещаются соответственно на 1 и 2 строку...

Как это реализовать? С помощью чего? С помощью очередей в Дата-Структурах это возможно? Они ведь могут быть для этого приспособлены? Хелп!!! Может у кого-то есть пример подобного инвентаря, основанного на принципе очерёдности...

маэстро
Группа: Сообщество GM
Сообщений: 812
Добавлено: 09-02-2006 20:05
Лучше используй списки.
Можно большой массив, а потом всё сдвигать.
А ты не задумывался, что если у тебя 100 вещей, а отображается всего 10, то куда ты остальные денешь.
P.S.
А я знаю как...

мастер
Группа: Сообщество GM
Сообщений: 108
Добавлено: 10-02-2006 01:42
Обычный массив, в переменной хранишь ссылку на последнию ячейку, при убирания объекта, все последующие просто смещаешь на одну позицию. Если будет время сделаю примерчик

бывалый
Группа: Участники
Сообщений: 47
Добавлено: 10-02-2006 07:26
в Draw
if global.slotXitem = ID
draw_sprite(s_sword,0,10,10)
if global.slotXitem = ID
draw_sprite(s_bow,0,10,10)
if global.slotXitem = ID
draw_sprite(s_armor,0,10,10)
где X номер слота, ID ид вещи.
Или так:

draw_sprite(s_items,ID,corx,cory)
где ID - ИД вещи, corx и cory коорд. слота
вот тока для каждого слота надо свою строку...

гроссмейстер
Группа: Сообщество GM
Сообщений: 148
Добавлено: 10-02-2006 15:28
Надо попробовать... А насчёт того, что 100 вещей могут не поместиться на экране - у меня будет лимит, например на 10 вещей, как в оригинальной игре...

гроссмейстер
Группа: Сообщество GM
Сообщений: 148
Добавлено: 10-02-2006 18:43
PaVeLius или кто-нить ещё - дайте пример, плиз... Со смещением всех предметов, когда один из них из инвентаря исчезает... С этим у меня как раз проблемы возникли...
Вот пример того, что я пытаюсь сделать:

скачать файл ГМ6 - около 50 кб

Нужно зайти во 2-ой магазин - там продаются такие вещи, как печенье, доширак и вафли, они у меня при покупке отображаются в инвентаре (кнопка Р - инвентарь)... Как при такой системе предметов сделать их смещение? Или как вообще лучше эту систему рациональной сделать, простой - а то я по незнанию кода понаписал километры условий <:о)

мастер
Группа: Сообщество GM
Сообщений: 121
Добавлено: 10-02-2006 19:03
сделай массив а при добавлении наращивай переменную-индекс елемента массива а при отображении через цыкл прогоняй массив ща напишу пример

Grand Admin
Группа: Администраторы
Сообщений: 1191
Добавлено: 10-02-2006 19:05
Так инвентарь мне тоже пригодится, для двоих: Конрада и Матвея, у одного будет постоянно пистолет (как и раньше), а у другого - межпространственный телепортер Короче, работать и работать...

гроссмейстер
Группа: Сообщество GM
Сообщений: 148
Добавлено: 10-02-2006 19:15
Массив, шмассив - только и слышно... Мож кто-нить объяснит - что это такое !!! (шучу) :о) Блин, когда я начну учить ГМЛ???

маэстро
Группа: Сообщество GM
Сообщений: 812
Добавлено: 10-02-2006 20:21
Массив - пронумерованные подряд ячейки памяти.
Стек - динамический массив где удаление и добавленик элемнта производится с одной стороны.
Список - динамический массив где удаление и добавленик элемнта производится в любом месте.
Очередь - динамический массив где добавленик элемнта производится с одной стороны, а удаление сдругой.
Вот некоторые разъяснения.
В Хэлпе десйствительно не понято что есть что.
А Карты - это Хэш.

гроссмейстер
Группа: Сообщество GM
Сообщений: 148
Добавлено: 10-02-2006 20:45
Мне по сути стек как нельзя лучше подходит, где бы про него прочитать... Не могу в хелпе ничего понять...

гроссмейстер
Группа: Сообщество GM
Сообщений: 148
Добавлено: 11-02-2006 13:21
Вот немного переделал, но осталась проблема...

скачать файл ГМ6 - около 52 кб

Проблема вот в чём - когда я беру предметы из инвентаря, то при покупке новых, новые предметы заполняют не только пустые ячейки, но и те, в которых есть предметы... Решить проблему пока у меня не получается...

Вот если бы при удалении предмета из инвентаря они сразу бы перестраивались, то это бы решило проблему, но я что-то не знаю, как это реализовать...

гроссмейстер
Группа: Сообщество GM
Сообщений: 148
Добавлено: 11-02-2006 17:16
Ура!!! Мой инвентарь полностью заработал!!! Кому интересно - по ссылке выше он лежит уже исправленный! Всем кто мне помогал - большое спасибо, особенно Rap_Person!!!

Инвентарь работает в супермаркете...

мастер
Группа: Сообщество GM
Сообщений: 121
Добавлено: 11-02-2006 17:39
WITH GREAT PLEASURE!

маэстро
Группа: Сообщество GM
Сообщений: 812
Добавлено: 11-02-2006 19:17
Мне по сути стек как нельзя лучше подходит, где бы про него прочитать... Не могу в хелпе ничего понять...

Лучше карты.
Я щас как раз пример инвентаря делаю.

мастер
Группа: Сообщество GM
Сообщений: 108
Добавлено: 12-02-2006 01:22
Значит пример тебе уже не нужен?
PS
Инвентарь с ячейками, если вдруг кому надо(это не то что требуется автору темы)

гроссмейстер
Группа: Сообщество GM
Сообщений: 148
Добавлено: 12-02-2006 05:18
Круто! Прямо как из диабло 1!!!

маэстро
Группа: Сообщество GM
Сообщений: 812
Добавлено: 12-02-2006 19:49
Типа Diablo forever?
Ну теперь смело можно писать на ГМ Diablo 3 с таким то примером.
Вещи интересно скэйлются...

Страницы: 1  новая тема
Раздел: 
Game Maker Форум / Вопросы и Ответы (Для Опытных) / Инвентарь

Отвечать на темы в данном разделе могут только зарегистрированные пользователи

Отвечать на темы могут только зарегистрированные пользователи

KXK.RU