Суббота, 20.04.2024, 07:59
Главная Регистрация RSS
Приветствую Вас, Гость
Поиск по сайту
Авторизация

Меню сайта
Game Maker
Если вы только-только начали изучать игрострой и еще даже не успели скачать сам Game Maker, предлагаем вам на выбор следующие версии программы:

Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации.
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации.
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна.
Топ 5 игр
Агент Green 4.2 / 5.0
FeDo 4.2 / 5.0
To Mars: Sec... 4.2 / 5.0
To Mars+MapE... 3.9 / 5.0
Paintball 3.8 / 5.0

Топ игр составлен путем пользовательского голосования.

Если вы не согласны с какой-либо оценкой, примите участие и поставьте свой балл игре. Ваша оценка очень важна для нас ;)
Статистика



На сайте: 1
Гостей: 1
Пользователей: 0
Главная » Статьи » Разработка игр

Знакомьтесь, массивы или как сделать инвентарь

Вот ко мне прилетела уже третья по счету просьба объяснить, как сделать игровой инвентарь. Ну что же, раз такое дело, то я не прочь поделиться своим опытом с другими =) Итак, начнем.

Что нам необходимо от инвентаря? Правильно! Нам нужно, чтобы в него можно было пихать всякое барахло, чтобы потом его можно было слить в игровых магазинах или одеть на перса. Как это реализовать? А вот это вопрос посложнее… Итак, давайте для начала разберемся, как вообще работает типичный игровой рюкзак в различных RPG.

На тридцать лет назад…



Рассмотрим самый простой вариант инвентаря на примере Final Fantasy.

Как вы видите по скриншоту, инвентарь в этой игре представляет из себя обычный список предметов, каждый из которых имеет свое свойство: цену, бонус к характеристикам, тип и т.д.

Такой тип инвентаря легко реализуется при помощи массивов. Для кого-то слово «массив» покажется новым, необычным и даже пугающим, но на самом деле тут ничего особо страшного нет.

Дело в том, что программировать множество переменных с аналогичными значениями – дело неблагодарное и довольно неудобное. Потому в программирование было введено такое понятие, как массив – набор однотипных компонентов.

Знаю что мои слова для вас пока темный лес, но все-таки надеюсь, вы быстро смекнете принцип действия массивов и будете активно применять их в кодинге. Ну что же, приступим к созданию рюкзака.

И, наконец-то, кодинг, чистый кодинг!
Для начала создадим какой-либо объект, который будет отвечать за рюкзак. Его название не важно, но все же условно назовем его o_ inventory.

В событии Create этого объекта создадим новый массив предметов при помощи цикла for:

var i { //Временная переменная i 

for (i=0;i<=5;i+=1) { //Повторяем цикл 5 раз (пока i<=5) 

cell_full[i]=false; //Пустая ячейка? 
cell_name[i]='none'; //Имя ячейки 
cell_money[i]=0; //Стоимость предмета в ячейке 




Отлично! Мы создали три массива:
cell_full, cell_name и cell_money, которые имеют по пять ячеек. Теперь, собственно, можно рисовать инвентарь. Для этого в событии Draw пишем:

var i,yy { //временные переменные i и yy 

yy=0; //Начальные координаты инвентаря равны 0 

for (i=0;i<=5;i+=1) { 

if cell_full[i]=true //Если ячейка не пуста... 
draw_text(x,yy,cell_name[i]); //то рисуем ее. 

yy+=20; //Переход к следующей строке 





Поздравляю! Рюкзак готов. Теперь осталось создать объект, который можно в него добавить. Для этого возьмем абсолютно любой объект и напишем в событии подбирания (в данном случае это Left Mouse) следующий код:

with o_inventory { //Выполняем операцию с рюкзаком 

var i{ //Снова временная переменная... 
for (i=0;i<=5;i+=1) { 

if cell_full[i]=false { //если ячейка пуста, то заполняем ее 
cell_full[i]=true; 
cell_name[i]='Think'
cell_money[i]=5; 
break; //Заканчиваем цикл, чтобы текущий предмет 
//не заполнил весь рюкзак. 





}
 

instance_destroy(); //Удаляем предмет с игрового поля

Вуаля! Инвентарь теперь можно наполнять вещами!

Заключение.
В этом уроке я задел тему массивов совсем мимолетно и так и не оставил у вас четкого понятия о их структуре, но думаю, если вас особо заинтересует эта тема, вы можете порыться в справке Game Maker и найти ответы на интересующие вас вопросы.

Также я не объяснил, как реализовать типичные функции инвентаря, вроде перемещения или выкидывания предметов… На это у меня, честно, просто не хватило времени. Но я обещаю, что если будет время, я дополню этот урок. Спасибо за внимание =)
Категория: Разработка игр | Добавил: BRESS (24.04.2013)
Просмотров: 10985 | Комментарии: 10 | Рейтинг: 4.4/18
Всего комментариев: 10
10 |{л|/|мен|{0 Д|/|м0н   (17.02.2014 15:30) [Материал]
можешь рассказать, как заставить главного героя прыгать

9 BRESS   (23.01.2014 20:50) [Материал]
BRESS У тебя вместо o_inventory используется другой объект. Читай статью внимательней.

8 admin3481   (24.12.2013 19:23) [Материал]
admin3481 BRESS ты мультитворец!!!

7 qwerto   (19.08.2013 13:43) [Материал]
qwerto Классно, был бы рад в следующий раз примеру.

6 tibIvan   (08.08.2013 19:29) [Материал]
happy спасибо!

2 Yuriko_Fururobu   (18.07.2013 00:51) [Материал]
Yuriko_Fururobu еще автор! жду с нетерпением!

3 BRESS   (18.07.2013 18:07) [Материал]
BRESS Ну, ладно. Правда, придется чуть-чуть подождать, дело не минутное wink

4 Yuriko_Fururobu   (18.07.2013 21:17) [Материал]
Yuriko_Fururobu У ТЕБЯ ЕСТЬ 7 ДНЕЙ. МВА-ХА-ХА-ХА biggrin

5 Yuriko_Fururobu   (18.07.2013 23:11) [Материал]
Yuriko_Fururobu А сможешь сделать в уроке объяснение того, как сделать так, что бы инвентарь мог открыввться в отдельном окне) а так же была бы постоянная функция "пояса" (постоянный инвентарь на пару-тройку ячеек) =) заранее спасибо)

1 Gracio001   (28.04.2013 10:56) [Материал]
Gracio001 спасибо, помогло.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]