Знакомьтесь, массивы или как сделать инвентарь - Разработка игр - Каталог статей - Game Maker
Суббота, 03.12.2016, 22:46
Главная Регистрация RSS
Приветствую Вас, Гость
Меню сайта
Файлы и ресурсы
Топ 5 участников
1. BRESS
Репутация: 221
Сообщений на форуме: 3239
2. Gracio001
Репутация: 181
Сообщений на форуме: 1370
3. Xomafok
Репутация: 164
Сообщений на форуме: 946
4. FarEastKmS
Репутация: 125
Сообщений на форуме: 359
5. aHDp
Репутация: 114
Сообщений на форуме: 755
Топ 5 игр
Agent Green 4.6 / 5.0
Wartime 4.3 / 5.0
FeDo 4.0 / 5.0
Adventures: ... 4.0 / 5.0
Secretive ha... 4.0 / 5.0

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

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



На сайте: 2
Гостей: 2
Пользователей: 0
BRESS
Просмотров страницы:
6094

Рейтинг материала:

Другие работы автора:
- -

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

Game Maker 8.1
Классика. Идеально подходит для создания простых 2D игр на PC. Требует активации.
Game Maker for Mac
Абсолютно та же программа, но только для пользователей Mac. Требует активации.
Game Maker Studio
Самая новая версия с возможностью кроссплатформенной разработки. Бесплатна.
Войти на сайт

Мини-чат
300

Так как чат открыт для всех, просьба отнестись с уважением к другим посетителям и не писать осознанно посты, оскорбляющие кого-либо, содержащие открытую рекламу/спам. Спасибо за понимание! :)
Опрос
Какого жанра вы предпочитаете делать игры?
Всего ответов: 221
Мы в Вконтакте
Главная » Статьи » Разработка игр

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

Что нам необходимо от инвентаря? Правильно! Нам нужно, чтобы в него можно было пихать всякое барахло, чтобы потом его можно было слить в игровых магазинах или одеть на перса. Как это реализовать? А вот это вопрос посложнее… Итак, давайте для начала разберемся, как вообще работает типичный игровой рюкзак в различных 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)
Просмотров: 6094 | Комментарии: 10 | Рейтинг: 4.3/15
Всего комментариев: 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 спасибо, помогло.

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