Показать сообщение отдельно
Старый 05.12.2007, 00:38   #4
jimon
 
Сообщений: n/a
Re: Как лучше управлять объектами в игре?

вот тебе кривое обьяснение зачем такое надо

Type TBlablabla
....

Field CachedObject:TObject

Method GetCacheFunction:TObject()
if CachedObject = null then CachedObject = GetFunction()
return CachedObject
End Method

Method FreeCacheFunction()
CachedObject = null
End Method

Method GetFunction:TObject()
'в етой функции каким-то образом получаем нужный обьект
..
return obj
End Method

Method Update()

local obj:TObject

obj = GetCacheFunction() 'тут у нас вызывается GetFunction()
obj = GetCacheFunction() 'а тут мы уже берем кешируемое значение
obj = GetCacheFunction() 'тут тоже самое
obj = GetCacheFunction()
obj = GetCacheFunction()

FreeCacheFunction() 'обычно кеш очищают если что-то изменилось
'но для примера будем очищать его в конце обновления

End Method

....

End Type
тоесть в принципе ето тоже самое что записать результат вычеслений
функции в переменную и потом юзать только ету переменную, а не функцию
но в данном случае все намного удобнее выглядит

мне такой подход понадобился только внутри TList, пришлось там
несколько функции зделать кешируемыми

хотя я особой оптимизацией игры не занимался, спокойно можно
перебирать все обьекты раз 10 за цикл не особо беспокоясь о производительности
 
Ответить с цитированием