А так через типы я обрабатываю пули у себя в проекте:
; Update Shots
For shot.shot = Each shot
DrawImage shoot,shot\x+LevelX,shot\y+LevelY
shot\sx = sin(shot\ang)
shot\sy = cos(shot\ang)
shot\x = shot\x + shot\sx*shot\speed
shot\y = shot\y + shot\sy*shot\speed
shot\life=shot\life-1
If shot\life<1 Then
;{тут я создаю микровзрыв пули}
Delete shot : Return
EndIf
; проверка столкновения с объектами типа Блок
For Bblock.block = Each block
coll = RectsOverlap(shot\x,shot\y,3,3,Bblock\x,Bblock\y,Bblock\w,Bblock\h)
If coll = True Then
;{тут я создаю микровзрыв пули}
Delete shot : Delete Bbloc : Return
EndIf
Next
Next
где:
LevelX, LevelY - глобальные координаты мира