Четверг, 14 Ноября 2024, 21:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Результаты поиска
AlieryДата: Воскресенье, 21 Мая 2017, 13:47 | Сообщение # 1 | Тема: Вопрос - Ответ (Game Maker)
уже был
Сейчас нет на сайте
У меня такой вопрос по коду:
Делал инвентарь. Создал сетку из объектов-ячеек. При подборе предмета(столкновения с игроком) идет проверка на позицию ячейки и свободна ли она. Все работает хорошо, но когда инвентарь полон, а свободных ячеек нет, выскакивает соответственная ошибка. Ну я и решил добавить условие(если ячейка не пустая) и "бездействие".
Вот код "o_item_parent(Событие столкновения))"
Код
with(o_inv_box)        
{
    for (i=0; i<10; i+=1)
        {
        for (j=0; j<6; j+=1)
        {
        if (box[i,j].item ==-1)
            {
            if (box[i,j].type == '')
                    
            {
                    box[i,j].item = other.object_index;
                    box[i,j].sp=other.sp;
                    box[i,j].mana=other.mana;
                    box[i,j].dmg=other.dmg;
                    box[i,j].dis=other.dis;
                    box[i,j].item_type=other.item_type;
                    
                    with(other)
                    {instance_destroy();}
                    exit;
                    
            }
            }
            
            else
            if (box[i,j].item != -1){exit;}
        }
        }          
}

А это в "o_inv_box(Создание)"
Код
item = -1;
type = '';

for(i = 0; i < 10; i ++) {  
   for(j = 0; j < 6; j ++) {   
      box[i,j] = instance_position(xstart+view_xview[0],ystart+view_yview[0],o_inv_box);
   }
}

dmg=0;
sp=0;
mana=0;
dis='';
item_type=0;


И что у меня в итоге получается: если оставить код без второго условия, то все предметы подбираются и появляются в инвентаре как надо, а если с условием if (box[i,j].item != -1){exit;}, то предмет, который в первой ячейке является приоритетным, и пока там лежит что-то, то ничего больше не подбирается. Если он пустой, то помещается в первую ячейку и снова ничего не делает.
Подскажите как исправить код, пожалуйста :)

Нашел в чем ошибка, благодаря одному из старых примеров у вас на сайте :)


Сообщение отредактировал Aliery - Понедельник, 22 Мая 2017, 15:43
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг