Показать сообщение отдельно
Старый 07.04.2011, 23:10   #3
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Проблемка с памятью

Охх... Крорче:
Type TTreePro
	Global LIST:TList=CreateList()
	Field IMAGE:TImage
	Field SPEED:Int
	Field COUNT_F:Int
	Field ID:Int
	
	Function GetRandom:TTreePro()
		R=Rand(1,CountList(LIST))
		For T:TTreePro=EachIn LIST
			C:+1
			If(C=R) Return T
		Next 
	End Function 
End Type
Весьма бреадовшный код прототипов деревьев. Парсер читает файл, вычиывает из него параметры дерева, а потом идет сама картинка в формате PNG, просто дописанная по байтам в конец файла. Вот на ее начало я смещаю указатель в файле, и передаю в функцию LoadAnimImage в кач-ве пути (path:Object)

Картинка грузится верно.

Вот код деревьев:

Type TTree Extends TObject
	Field PRO:TTreePro 'Вот наш линк на прототип
	Field Timer:Int 
	Field CurrentFrame:Int=0
	
	Function Create(X#,Y#,Pro:TTreePro)
		If(PRO=Null) Return 
		T:TTree=New TTree
		T.X=X
		T.Y=Y
		T.NEED_INDEXED=0 'нам не нужна индексация в секторах!
		T.RENDER_SIZE=Max(PRO.IMAGE.Width,PRO.IMAGE.Height)
		T.PRO=PRO
		ListAddLast FULL_LIST,T
	End Function 
	
	Method Math()
		timer:+1
		If(Timer>PRO.Speed)
			Timer=0
			CurrentFrame:+1
			If(CurrentFrame=PRO.COUNT_F) CurrentFrame=0
		EndIf 
	End Method 
	
	Method Draw()
		DrawImage PRO.IMAGE,X,Y,CurrentFrame
	End Method 
	
	Method Destroy()
	End Method 
End Type
(Offline)
 
Ответить с цитированием