Создание простого инвентаря на Game Maker. Часть 1
Всем привет! Сегодня мы с вами разберём простейшую реализацию инвентаря. Что собой представляет инвентарь? Это ячейки, в каждой из которых содержится информация о подобранном вами предмете. Что происходит, когда игрок подбирает какой либо предмет? Проверяются все ячейки инвентаря, когда найдена свободная, то записываем в неё информацию о предмете, который подобрали. Не будем терять время и перейдём к делу. P.S: Кто не знаком с циклами и массивами, советую дальше не читать. Для начала создадим все необходимые нам спрайты и объекты.
Спрайты s_fruit - спрайт предмета, который мы будем подбирать. s_non - спрайт ячейки. Просто создайте пустой прозрачный спрайт размером в 32 х 32.
Объекты inv - объект, в котором создаются ячейки инвентаря. o_case - ячейка. Создаются в объекте inv. o_fruit - предмет, который мы будем подбирать.
Спрайты и объекты созданы, теперь можно переходить к написанию кода. Открываем объект inv, создаём событие Create и пишем код:
Давайте разберём. Первая строка отвечает за кол-во ячеек по горизонтали, вторая - по вертикали. В итоге у нас должно получиться 9 ячеек. Третья и четвёртая строки инициализируют двойной цикл. Пятая строка создаёт объекты ячеек по горизонтали и вертикали и записывает индекс каждой ячейки в массив. Думаю, поняли. Всё, с этим объектом завершили. Переходим теперь к объекту o_fruit. Создаём события нажатой кнопки мыши (не глобальной) и пишем такой код:
Здесь код отвечает за подбор предмета и помещения его в первую свободную ячейку инвентаря. Работает это так: если у объекта ячейки спрайт == s_non, значит она свободна, иначе - занята. Запускаем цикл, который проверяет все ячейки, и создаём условие, которое проверяет все ячейки на наличие предмета, если его нет, то найденной пустой ячейке присваиваем спрайт объекта, на который нажали, уничтожаем этот объект и выходим из цикла. С этим разобрались.
Далее идём в o_case и создаём два события. -Нажатая кнопка мыши -Draw
В событии нажатия кнопки мыши пишем ну очень сложный код:
Code
if (sprite_index == s_fruit) { //Тут проверяем спрайт объекта, который находится в данной ячейке o_player.hp += 10; //Если условие истина, то прибавляем игроку 10 единиц здоровья и sprite_index = s_non; //Опустошаем ячейку, на которую нажали }
И последнее, что мы с вами должны сделать, это отрисовать ячейку, т.к. она невидима из-за спрайта. Открываем ранее созданное событие Draw и пишем такие строки:
Code
draw_set_alpha(0.3); //Устанавливаем прозрачность на 0.3 draw_rectangle(x, y, x + 32, y + 32, 0); //Рисуем вокруг спрайта заполненный квадрат draw_set_alpha(1); //Устанавливаем прозрачность на 1 draw_rectangle(x, y, x + 32, y + 32, 1); //И поверх рисуем не заполненный квадрат draw_sprite_ext(sprite_index, image_index, x, y, 1, 1, image_angle, c_white, 1); //И, наконец, отрисовываем сам спрайт ячейки
Теперь ячейки будут отображаться нормально. С вами был Fade, спасибо за прочтение статьи и до новых встреч!
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:
Игровые объявления и предложения:
Если вас заинтересовал материал «Создание простого инвентаря на Game Maker. Часть 1», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела.
Предлагаются такие схожие материалы:
Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.
Написал второй урок по сосзданию инвентаря. http://gcup.ru/publ/sozdanie_prostogo_inventarja_na_game_maker_chast_2/2-1-0-310 Там как раз об этом и говорится.