Суббота, 26.05.2012, 18:42


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

Меню сайта
Категории каталога
Создание игр [170]
Статьи об общих понятиях связанных с созданием игр
Движки и Гейммейкеры [85]
Статьи о программах для создания игр
Игры [39]
Статьи об играх, в том числе и сделанных на гейммейкерах
Софт [25]
Различные программы, в том числе в помощь игроделам
Разное [61]
Статьи, которые не вошли в определённые разделы
Наш опрос
Сколько вы уже создали своих игр?
Всего ответов: 10587
Главная » Статьи » Движки и Гейммейкеры

Создание простого инвентаря на Game Maker. Часть 2.
Всем снова здравствуйте! С вами vasyan555. В этой части урока мы с вами продолжим создание инвентаря. В первой
части мы познакомились с основами инвентаря и простейшей его реализацией. Итак, чем мы займёмся.. Проведём
оптимизацию инвентаря и реализуем складывание вещей в стопку. Это всё можно будет сделать всего-лишь одним
объектом, ну и конечно же предметом(ами), нажимая на которые, они будут добавляться в инвентарь. Основы создания
надеюсь Вы поняли, поэтому расскажу коротко.
Как обычно создаём новый проект.
Создаём наш старый, знакомый объект inv, и в Create пишем такой вот код:

Code
w = 3;
h = 3;
for(i = 0; i < w; i += 1)
{
for(j = 0; j < h; j += 1)
{
Spr[i,j] = -1;
Amount[i,j] = 1;
}
}


Получив знания с первого урока, я думаю Вы знаете, за что отвечает каждая строка данного кода. Но как мы видим, код
слегка дополнен двумя строками. Давайте их разберём.

Spr[i,j] = -1;
Эта строка отвечает за спрайт объекта, лежащего в конкретной ячейке. Циклом и массивом мы каждой ячейке присваиваем
"нулевой" спрайт, тоесть все ячейки пусты.

Amount[i,j] = 1;
Здесь строка отвечает за количество объектов в ячейках. Каждой из всех ячеек мы присваиваем кол-во 1
Так, с этим разобрались. Теперь нам нужно сделать отрисовку спрайтов в ячейках. Создаём событие Draw и пишем код:

Code
for(i = 0; i < w; i += 1)
{
for(j = 0; j < h; j += 1)
{
draw_set_alpha(0.2);
draw_rectangle(i*32, j*32, i*32+32, j*32+32, 0);
draw_set_alpha(1);
draw_rectangle(i*32, j*32, i*32+32, j*32+32, 1);
if Spr[i,j] != -1
{
draw_sprite(Spr[i,j], -1, i*32+16, j*32+16)
}
if Amount[i,j] > 1
draw_text(i*32+16, j*32+16, Amount[i,j])
}
}


Здесь всё устроено немного иначе. Сначала мы инициализируем цикл, проверяющий все ячейки. Далее отрисовываем
ячейки. Думаю об этом принципе рисования Вы узнали из первого урока, поэтому зацикливать внимание я на этом не
буду. Потом идёт отрисовка спрайта объекта в занятых ячейках. И последнее, что мы проверяем, это отрисовку
количества объектов в определённой ячейке. В данном случае рисовать количество мы будем только в том случае, если в
ячейке находится больше одного объекта.

Основа нашего с Вами инвентаря готова. Всё, что нам осталось, осуществить подбор и складывание предметов в
инвентарь. Создаём спрайты s_item1,s_item2, s_item3 и объекты и назначаете им соответствующие спрайты.
Для того, чтобы не пришлось писать много кода в каждый объект, мы напишем скрипт.
Создаём скрипт и назовём его add_item и в нём пишем следующий код:

Code
for(j = 0; j < inv.h; j += 1)
{
for(i = 0; i < inv.w; i += 1)
{
if inv.Spr[i,j] == -1
{
inv.Spr[i,j] = sprite_index;
instance_destroy();
exit;
}
else
if inv.Spr[i,j] == sprite_index
{
inv.Amount[i,j] += 1;
instance_destroy();
exit;
}
}
}


Всё также запускаем цикл, который проверяет все ячейки инвентаря. Потом проверяем наличие объекта в ячейках, пока
не находим пустую, и в переменную найденной ячейки записываем спрайт подобранного объекта, уничтожаем его и выходим из цикла (В
данной ситуации это необходимо!). Иначе, если при проверке был обнаружен объект, который мы хотим подобрать, то
тогда увеличиваем количество предметов в ячейке с найденным предметов, уничтожаем его и также выходим из цикла. Всё, наш скрипт
написан. Теперь осталось его, как-бы так сказать, "привести в действие". В каждый созданный объект (o_item1,
o_item2... их может быть любое кол-во, на ваше усмотрение) в событие Left Pressed пишем инициализацию нашего
написанного скрипта:

Code
add_item();


Готово. Теперь создаём комнату, размещаем объект inv в левый верхний угол комнаты и произвольно размещаем предметы.
Тестируем на работоспособность и радуемся тому, что научились создавать крутой, но в то же время простой для
понимания инвентарь! smile

Исходник к статье: Скачать

Всё, всем спасибо за внимание!
vasyan555
Категория: Движки и Гейммейкеры | Добавил: Fade (12.07.2011)
Просмотров: 1797 | Рейтинг: 4.7/3
Теги: уроки, Как создать инвентарь, Реализация инвентаря, Статьи по Game Maker, Туториал, Урок, Кодинг, GM, Game Maker, GML
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Создание простого инвентаря на Game Maker. Часть 2.», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями. Для этого воспользуйтесь предлагаемой ниже кнопкой:
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ссылки по теме
Поиск
10 случайных движков
Unreal Engine 2
Nytro Game Engine
GLHeretic
Unity
PixelLight
Raydium Engine
Eternity Engine
GameMaker: Studio
OpenSpace3D
Doom Legacy
Друзья сайта
Игровой форум GFAQ.ru Перевод консольных игр Разработка игр в СНГ Loadka.ru – загрузка файлов Игорный бизнес в России Реклама и заработок
Все права сохранены. GcUp.ru © 2008-2012 Рейтинг