Game Maker - создание игр | HellRoom Games
Декабрь 07, 2025, 03:18:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: 1 ... 19 20 [21] 22 23 ... 28   Вниз
  Печать  
Автор Тема: Пример инвентаря  (Прочитано 340998 раз)
0 Пользователей и 1 Гость смотрят эту тему.
wargamen
Участник
****

Репутация: 19
Offline Offline

Пол: Мужской
API: Game Maker 6.1
Деятельность: Java, GMS, pixelart
Сообщений: 155

Java, i love you:3


« Ответ #300 : Март 09, 2013, 18:33:54 »

Ты лучше обьясни по подробнее. Я тебя немного не пойму.
Записан

"Если ты играешь в престолы, ты должен либо умереть, либо победить! Среднего не бывает!". Песнь льда и пламени.

"Закон бесконечной всемирной извращенности или закон Феликса." Когда сисадмины правили Землей.
cfif31
Посетитель
**

Репутация: 0
Offline Offline

API: Game Maker 8.0 Pro
Сообщений: 24


« Ответ #301 : Март 09, 2013, 18:38:37 »

Ты лучше обьясни по подробнее. Я тебя немного не пойму.

Я использую пример инвентаря в отдельной комнате

код из объекта obj_smil_base я изменил (убрал лишнее и item[slot_x,slot_y]+=1; поменял на  item[slot_x,slot_y]-=1;)

Код:
with (obj_inv)//выполняем код для объекта obj_inv
    {
    for (slot_y=0; slot_y<inv_height_y; slot_y+=1)//выбираем строку инвентаря для проверки
        {
        for (slot_x=0; slot_x<inv_width_x; slot_x+=1)//проверяем все ячейки в этой строке, а потом опять выполнится сторка выше и мы перейдем к следующепй строке инвентаря
            {
            if (txt[slot_x,slot_y]=other.name)//когда находим ячейку с таким же предметом
                {
                with (other)
                    {
                    if variable_local_exists('max_number')//если у этого объекта есть переменная max_number (ограничение на количество предметов в одной ячейке)
                        {
                        if (other.item[other.slot_x,other.slot_y]<max_number)//проверяем сколько предметов в этой ячейке. если меньше чем max_number:
                            {
                            other.txt[other.slot_x,other.slot_y]=name;//записываем в массив имя
                            other.spr[other.slot_x,other.slot_y]=sprite_index;//записываем в массив какой спрайт отображать в нивентаре
                            other.item[other.slot_x,other.slot_y]+=1;//увеличиваем кол-во предментов на 1
                            other.max_number[other.slot_x,other.slot_y]=max_number;//записываем максимальное количество предметов в слоте
                            instance_destroy();//удаляем предмет из комнаты
                            exit;//после того как нашли пустую ячейку и записали все нужные параметры прекращаем выполнение кода. остальные ячейки просматривать не имеет смысла
                            }
                        }
                    else
                        {//если у этого объекта нет переменной max_number то все предметы "складываем" в одну ячейку
                        other.txt[other.slot_x,other.slot_y]=name;//записываем в массив имя
                        other.spr[other.slot_x,other.slot_y]=sprite_index;//записываем в массив какой спрайт отображать в нивентаре
                        other.item[other.slot_x,other.slot_y]+=1;//увеличиваем кол-во предментов на 1 (это для отображния в инвентаре. пока что не работает
                        other.max_number[other.slot_x,other.slot_y]=0;//записываем максимальное количество предметов в слоте (т.к. это для безлимитных предметов - ставим 0
                        instance_destroy();//удаляем предмет из комнаты
                        exit;//после того как нашли пустую ячейку и записали все нужные параметры прекращаем выполнение кода. остальные ячейки просматривать не имеет смысла
                        }
                    }
                }
            }
        }
    }

Добавлено: Март 09, 2013, 21:39:14
Помогите пожалуйста с инвентарем в отдельной комнате, а то когда я открываю инвентарь в комнате с игрой все изменения пропадают, пробовал сохранять первую комнату загружать её из инвентаря всё наоборот(первая загружается во второй изменения проподают)! Как быть?
Записан
MusNik
KeeVee Games
GM Pro user
*

Репутация: 733
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+500 репутации]За отличную игру Rock painting story!За помощь в развитии форума!За отличные статьи по Game Maker!...
API: GameMaker Studio 2
Сообщений: 3241



WWW
« Ответ #302 : Март 09, 2013, 22:23:01 »

Помогите пожалуйста с инвентарем в отдельной комнате, а то когда я открываю инвентарь в комнате с игрой все изменения пропадают, пробовал сохранять первую комнату загружать её из инвентаря всё наоборот(первая загружается во второй изменения проподают)! Как быть?
Сделать комнату постоянной?
Записан

Dva_Kota
Гл. Администратор
*

Репутация: 636
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+500 репутации]Настоящий игродел!Тру Админ :D1 место за игру: Energy Wars (Конкурс Золотые Руки)...
API: GameMaker Studio Standard
Сообщений: 3245



« Ответ #303 : Март 10, 2013, 02:11:17 »

cfif31, почитай внимательно первый пост - там есть ответы на многие вопросы. первая ссылка под спойлером - как удалить предметы из инвентаря (там немного не так как при добавлении, т.к. нужно проверять сколько их осталось и, если удалены все предметы, полностью очищать ячейку, а не только количество уменьшать).

Добавлено: Март 10, 2013, 02:26:18
И, на всякий случай, поясню про other в этом примере.

Код:
with (obj_inv)//здесь из объекта "Игрок" (или из любого другого объекта) "перемещаемся" в инвентарь
    {
    for (slot_y=0; slot_y<inv_height_y; slot_y+=1)
        {
        for (slot_x=0; slot_x<inv_width_x; slot_x+=1)
            {
            if (txt[slot_x,slot_y]='Cav')
                with (other)//здесь "перемещаемся" из инвентаря (т.к. мы до этого "переместились" в него) обратно в первоначальный объект.
                                   //Теперь все переменные, перед которыми стоит "other." - это переменные объекта obj_inv
                    {
                   
                            other.item[other.slot_x,other.slot_y]-=1;
                            instance_create(624,928,obj_cav1);
                            with(obj_cav1) move_towards_point(64,34,6)
                            exit;
                           
                   
                    }
                }
            }
        }

Вообще из этого кода можно убрать with (other) и other перед переменными. Такая конструкция был сделана там где было много обращений к переменным объекта, в котором выполнялся код (чтобы не писать много раз other перед переменными), потом эту конструкцию я скопировал, а убрать лишнее забыл.
Записан

Federico
Новичок
*

Репутация: 1
Offline Offline

API: Game Maker 8.0 Lite
Сообщений: 4


« Ответ #304 : Март 28, 2013, 23:58:00 »

У меня почему то сам инвентарь вместе с камерой не перемещается  Что делать?  В примере всё работает, а когда копировал в свой TDS единственное что не получается: Инвентарь с предметами не перемещается! Остаётся в левом верхнем углу комнаты Смайлик с ладошкой
Записан
onChyk
«Старожил форума»
******

Репутация: 170
Offline Offline

Пол: Мужской
API: GameMaker Studio Master
Деятельность: Программист GML AAA класса, пиксель-художник, геймдизайнер
Сообщений: 2318



WWW
« Ответ #305 : Март 29, 2013, 11:48:28 »

У меня почему то сам инвентарь вместе с камерой не перемещается  Что делать?  В примере всё работает, а когда копировал в свой TDS единственное что не получается: Инвентарь с предметами не перемещается! Остаётся в левом верхнем углу комнаты Смайлик с ладошкой
Рисуй инвентарь не в координатах x,y , а в view_xview[0]+x и view_yview[0]+y
Записан

Federico
Новичок
*

Репутация: 1
Offline Offline

API: Game Maker 8.0 Lite
Сообщений: 4


« Ответ #306 : Март 29, 2013, 13:32:50 »

У меня почему то сам инвентарь вместе с камерой не перемещается  Что делать?  В примере всё работает, а когда копировал в свой TDS единственное что не получается: Инвентарь с предметами не перемещается! Остаётся в левом верхнем углу комнаты Смайлик с ладошкой
Рисуй инвентарь не в координатах x,y , а в view_xview[0]+x и view_yview[0]+y
Немного не понял, куда писать 
Записан
onChyk
«Старожил форума»
******

Репутация: 170
Offline Offline

Пол: Мужской
API: GameMaker Studio Master
Деятельность: Программист GML AAA класса, пиксель-художник, геймдизайнер
Сообщений: 2318



WWW
« Ответ #307 : Март 29, 2013, 13:48:11 »

Допустим, в событии draw ты рисуешь что-то в координатах X:100 и Y:100. Теперь ты должен рисовать в координатах X:view_xview[0]+100 и Y:view_yview[0]+100. Если не понял, то в FAQ про это написано.
Записан

Federico
Новичок
*

Репутация: 1
Offline Offline

API: Game Maker 8.0 Lite
Сообщений: 4


« Ответ #308 : Март 29, 2013, 14:18:41 »

Допустим, в событии draw ты рисуешь что-то в координатах X:100 и Y:100. Теперь ты должен рисовать в координатах X:view_xview[0]+100 и Y:view_yview[0]+100. Если не понял, то в FAQ про это написано.
Всё, понял спасибо 

Добавлено: Март 29, 2013, 21:00:38
У меня ещё одна проблема, когда я перехожу между комнатами лут не сохраняется, что делать?    errm

Добавлено: Март 30, 2013, 00:26:04
У меня при переходе лут не сохраняется в инвенторе
Записан
Dva_Kota
Гл. Администратор
*

Репутация: 636
Offline Offline

Пол: Мужской
Награды:
3000 сообщений!За постоянность! [500 дней на форуме]За лояльность! [+500 репутации]Настоящий игродел!Тру Админ :D1 место за игру: Energy Wars (Конкурс Золотые Руки)...
API: GameMaker Studio Standard
Сообщений: 3245



« Ответ #309 : Март 30, 2013, 01:08:41 »

Сделай инвентарь постоянным объектом и ставь его только в первую комнату.
Записан

Federico
Новичок
*

Репутация: 1
Offline Offline

API: Game Maker 8.0 Lite
Сообщений: 4


« Ответ #310 : Март 30, 2013, 01:19:51 »

Сделай инвентарь постоянным объектом и ставь его только в первую комнату.

 Я, конечно, извеняюсь, я не умею это делать.. Я про то, что бы сделать его постоянным  Смайлик с ладошкой
Записан
demon3521
Посетитель
**

Репутация: 6
Offline Offline

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 36



« Ответ #311 : Март 30, 2013, 01:30:32 »

в свойствах объекта persistent поставь галочку
Записан


Sanek94
Участник
****

Репутация: 24
Offline Offline

Пол: Мужской
API: Game Maker 8.0 Pro
Сообщений: 214


« Ответ #312 : Март 30, 2013, 19:14:10 »

FedericoТак же, в настройке комнаты, делай комнату постоянной - чтобы изменения в ней сохранялись.

Безымянный.png
Пример инвентаря
* Безымянный.png (64.8 Кб, 691x897 - просмотрено 930 раз.)
Записан
Night
Новичок
*

Репутация: 1
Offline Offline

API: Game Maker 8.0 Pro
Деятельность: Создаю игры
Сообщений: 7

Программист NewTimeStudio


« Ответ #313 : Март 31, 2013, 17:09:24 »

Классный пример.  Уважуха Только слоты инвентаря лучше сделать полупрозрачными и с закругленными краями. Это лично мое мнение 
Записан

В команду NewTimeStudio идет набор желающих.На данный момент требуется художник 2d спрайтов
ALT
Посетитель
**

Репутация: 0
Offline Offline

API: GameMaker Studio
Сообщений: 30


« Ответ #314 : Апрель 06, 2013, 10:07:01 »

Классный пример.  Уважуха Только слоты инвентаря лучше сделать полупрозрачными и с закругленными краями. Это лично мое мнение 
А в чем проблема? Один файлик-то всего перерисовать. Это можно и самостоятельно сделать
Записан
Страниц: 1 ... 19 20 [21] 22 23 ... 28   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.093 секунд. Запросов: 35.