Инвентарь на основе массива

Favourite 60 favourites
Tutorial written by WaltanOriginally published on 7th, July 2013 - 5 revisions

Translation Team:

2 total revisions

Привет всем. Я видел пару туториалов по созданию инвентаря и решил поделиться своим способом его создания.

Концепт

То, как наш инвентарь будет работать:
Для начала, нам понадобится массив %сколько вам нужно ячеек% в ширину и 2 строчки в высоту. В первой строчке мы будем хранить ID предметов, а во второй - их количество.

Помните, что наши ID предметов это не UID Констракта. Вам нужно придумать эти числа самому. Например, объекту "Apple" мы можем присвоить ID = 1, а объекту "Coin" ID = 2.

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

startslot = id начальной ячейки инвентаря
startitem = id предмета в начальной ячейке инвентаря
startnumber = количество этого предмета
После того, как вы выбрали необходимую ячейку, вы выбираете ячейку, в которую хотите переложить свой предмет. Для этого нам нужно еще 3 переменные:
endslot
enditem
endnumber
После этого, вам нужно просто поменять значения в массиве, используя эти переменные:

    Inventory.at(startslot,0) → Inventory.at(endslot,0)
    Inventory.at(startslot,1) → Inventory.at(endslot,1)
    Inventory.at(endslot,0) → Inventory.at(startslot,0)
    Inventory.at(endslot,1) → Inventory.at(startslot,1)

По сути, мы сделали то, что хотели. Теперь приступим к практике.

Share and Copy this Tutorial

You are free to copy, distribute, transmit and adapt this work with correct attribution. Click for more info.

Comments

0
nikita632 3,764 rep

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

Tuesday, December 31, 2013 at 1:20:31 PM

Leave a comment

Everyone is welcome to leave their thoughts! Register a new account or login.