Дэвелопер
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений (для 886 пользователей)
|
Ответ: Помогите с Type
Сообщение от volgeras
Не,в массиве не поместится информации столько же сколько так. Я в массив только ссылку на сам сделаю, а надо еще координаты, номера и еще что-то.
|
Чё за фигня?
С экземпляром объекта мы работаем через указатель (ссылку) на него, поэтому - имея указатель в массиве, мы имеем доступ ко всем полям.
Вот массив объектов:
Type TElem
Field x%,y%
Field width%,height%
Field r%, g%,b%
End Type
Global colCount% = 8, rowCount% = 8
Dim mas.TElem(colCount, rowCount)
И доступ
Я написал примерчик, чтоб удостовериться, что оно работает в блице. Итог: оно работает
Type TElem
Field x%,y%
Field width%,height%
Field r%, g%,b%
End Type
Global colCount% = 8, rowCount% = 8
Dim mas.TElem(colCount, rowCount)
Global screenWidth% = 800
Global screenHeight% = 600
Graphics(screenWidth, screenHeight, 16, 2)
SetBuffer (BackBuffer ())
fnCreateElems(screenWidth, screenHeight)
While(Not(KeyHit(1)))
fnDrawElems()
Flip()
Cls()
Wend
End
Function fnCreateElems(width%, height%)
Local cube.TElem
Local w%,h%
For c%=0 To colCount-1
For r%=0 To rowCount-1
cube = New TElem
w = Rand(10,30)
h = Rand(10,30)
cube\x = Rand(0, width-w)
cube\y = Rand(0, height-h)
cube\width = w
cube\height = h
cube\r = Rand(0,255)
cube\g = Rand(0,255)
cube\b = Rand(0,255)
mas(c, r) = cube
Next
Next
End Function
Function fnDrawElems()
For c%=0 To colCount-1
For r%=0 To rowCount-1
Color(mas(c, r)\r, mas(c, r)\g, mas(c, r)\b)
Rect (mas(c, r)\x, mas(c, r)\y, mas(c, r)\width, mas(c, r)\height)
Next
Next
End Function
|