(и еще 255 записям на сайте сопоставлена такая метка)
Другие метки пользователя ↓
3ds Gothica gamedev gothic rpg udk udk unity3d gamedev unity3d gamedev c# литература рпг творчество удк
Итератор |
Дневник |
Сколько ж ограничений в UnrealScript!
Вот, оказывается свой итератор нельзя объявить. Функция-итератор должна быть нативной. Нативную функцию можно объявить только в нативном классе. А нативный класс просто нельзя объявлять...
Но я это обошел.
Создаем функцию, подобную итератору, например:
function RPGInvActor(class<Inventory> BaseClass, out Inventory Inv)
Она подобна итератору:
native final iterator function InventoryActors( class<Inventory> BaseClass, out Inventory Inv );
из класса InventoryManager. Единственное условие - в Inv должна вернуть None, если не нашла.
Теперь вместо foreach используем:
do
{
...
} until( Inv != None);
Естестсвенно RPGInvActor должна при каждом вызове возвращать следующее значение. Этого можно достичь введя переменную в классе, которая сохраняет предыдущее найденное значение:
var Inventory InvCash; //Для итератора
И использовать ее для нахождения следующего айтема в списке для поиска...
Для чего мне все это понадобилось? Для своей реализации инвентаря.
Инвентарь у Эпиков представляет собой обычный односвязный список. Естественно поиск в нем не быстр, естественно Инвентаря в нем много хранить нельзя (Эпики об этом прямо пишут). Более того, хоть это и возможно принципиально, но у Эпиков в инвентарь нельзя добавлять одинаковые предметы.
Ну а в ролевых играх в рюкзаке у героя очень много предметов, очень много одинаковых...
Как это реализовать? - сделать свою структуру для инвентаря. Я сделал комбинированную.
Есть динамический массив, элементы которого - первые элементы в связанных списках. Тип элемента в массиве повторяться не может. А вот в списке, на который указывает элемент массива как раз наоборот - все элементы одного типа.
Метки: rpg рпг gamedev удк udk |
Тултипсы |
Дневник |
Сделал тултипсы к объектам. Появляются, когда ГГ смотрит на объект. Работают на всех типах объектов.
Работы еще много - главное на данный момент вывести его не где попало а чуть выше объекта. К сожалению разные типы имеют разные переменные высоты. К тому же у скелеталмешей почему-то боундинг в одном измерении значительно больше самого предмета... Вроде я алгорите придумал не зависящий от всего этого,
но нужно проверять еще...
Метки: gamedev rpg udk удк |
Страницы: | [1] |