-–убрики

 -ѕодписка по e-mail

 

 -ѕоиск по дневнику

ѕоиск сообщений в seamanmur

 -ѕосто€нные читатели

 -—татистика

—татистика LiveInternet.ru: показано количество хитов и посетителей
—оздан: 14.04.2006
«аписей:
 омментариев:
Ќаписано: 120


»тератор

¬торник, 14 ƒекабр€ 2010 г. 11:22 + в цитатник

—колько ж ограничений в 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;            //ƒл€ итератора

» использовать ее дл€ нахождени€ следующего айтема в списке дл€ поиска...

ƒл€ чего мне все это понадобилось? ƒл€ своей реализации инвентар€.

»нвентарь у Ёпиков представл€ет собой обычный односв€зный список. ≈стественно поиск в нем не быстр, естественно »нвентар€ в нем много хранить нельз€ (Ёпики об этом пр€мо пишут). Ѕолее того, хоть это и возможно принципиально, но у Ёпиков в инвентарь нельз€ добавл€ть одинаковые предметы.

Ќу а в ролевых играх в рюкзаке у геро€ очень много предметов, очень много одинаковых...

 ак это реализовать? - сделать свою структуру дл€ инвентар€. я сделал комбинированную.

≈сть динамический массив, элементы которого - первые элементы в св€занных списках. “ип элемента в массиве повтор€тьс€ не может. ј вот в списке, на который указывает элемент массива как раз наоборот - все элементы одного типа.

 

–убрики:  3ds/UDK
ћетки:  



 

ƒобавить комментарий:
“екст комментари€: смайлики

ѕроверка орфографии: (найти ошибки)

ѕрикрепить картинку:

 ѕереводить URL в ссылку
 ѕодписатьс€ на комментарии
 ѕодписать картинку