Global cursor
Global LClick, mx#, my#; задаём переменные для мыши глобально
; объявляем тип
Type Main
Field stone; камень
Field x#, y#; координаты камня
Field life; жизнь камня
End Type
Graphics3D 800, 600,0,2
SetBuffer BackBuffer()
SeedRnd MilliSecs()
cursor=LoadImage("c.bmp")
CreateStone(50); делаем камни
HidePointer
Repeat
Cls
Mouse()
UpdateStones(); обновляем камни
DrawImage cursor, mx, my
Flip 0
Until KeyHit(1)
End
Function CreateStone(imax%=0)
For i=1 To imax
m.Main=New Main; создаём новый элемент типа, далее следует то, что храним в этом элементе
m\stone=LoadImage("h.bmp"); камень
m\x=Rnd(100,700); координата х
m\y=Rnd(100,500); координата y
m\life=10; жизнь
Next
End Function
Function UpdateStones()
For m.Main=Each Main; перебираем тип
DrawImage m\stone, m\x, m\y
If ImagesCollide (cursor,mx,my,0,m\stone,m\x, m\y, 0) And LClick=2
m\life=m\life-1
EndIf
If m\life=0
FreeImage m\stone; удаляем каменнь
Delete m; удаляем элемент типа
EndIf
Next
End Function
Function Mouse(); функция для срабатывания мыши по отпусканию кнопки
mx=MouseX()
my=MouseY()
If LClick=2 LClick=0
If LClick=0
If MouseDown(1) LClick=1
Else
If Not MouseDown(1)
LClick=2
EndIf
EndIf
End Function
Тип это как картотека в библиотеке. Элемент типа это карточка и в ней может хранится что угодно.
Когда мы перебираем тип, это как цикл. Только цикл фиксирован, допустим от 0 до 20. А перебор типа перебирает все элементы. По ходу действия программы можно удалять или добавлять элементы, это не вызовет ошибки.
Как-то так