Тема: Удаление
Показать сообщение отдельно
Старый 25.04.2007, 22:48   #12
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Удаление

При нажатии создаёься пуля и летит по напровлению. Циклом я создаю астероиды. А как их столкнуть? Как произвести коллизию двух обьектов, которые создаются в разное время из типа.
Function asteroids()
For as1= 1 To 5
aster_1.aster_1= New aster_1
aster_1\x#=Rnd(10,790)
aster_1\y#=Rnd(-100,0)
aster_1\xv#=Rnd#(-0.1,0.1)
aster_1\yv#=Rnd#(0.3,0.5)
aster_1\frame=fr
aster_1\trueplama=0
aster_1\frex#=0
aster_1\frexp=0
Next
End Function
;=============================================
deletpula =0
aviacia_s()
ka=3

;_________________________________________________
Repeat
Cls()

timeractive = 1
If KeyHit(56) asteroids()
;######################

If fremeAsteroids>15 Then remeAsteroids=0
remeAsteroids=remeAsteroids+0.2
fr=remeAsteroids
  For aster_1.aster_1 = Each aster_1
       
    Else If ImagesCollide (asteroid1, aster_1\x, aster_1\y, aster_1\frame, pulaimage, pula\xp, pula\yp,pula\frame)

            aster_1\trueplama=1
        DrawImage(boomimage,aster_1\x,aster_1\y,fr)
        If fr> 14
        Delete aster_1
        EndIf

                
    Else If aster_1\y>=500
        Delete aster_1        
    Else 
        If aster_1\trueplama=0
        aster_1\y=aster_1\y+aster_1\yv
        aster_1\x=aster_1\x+aster_1\xv
           DrawImage (asteroid1,aster_1\x,aster_1\y,fr)
        EndIf
        
        If aster_1\trueplama=1    
        DrawImage(boomimage,aster_1\x,aster_1\y,fr)
        If fr> 14
        Delete aster_1
        EndIf
        EndIf
    EndIf

  Next

;Выстрел из турелей
If deletpula =0
If MouseDown(1)
deletpula =9
PlaySound shotturel
For id=0 To 2
pula.pula=New pula
pula\xp=av_s\xs
pula\yp=av_s\ys
pula\frame= 3
pula\ide= id
next
    EndIf
EndIf

For pula.pula = Each pula   
pula\yp=pula\yp+vy
pula\xp=pula\xp+vx
 If ImagesCollide (meh, 400, 150, 0,pulaimage, pula\xp, pula\yp,pula\frame)
        PlaySound shottrue
        Delete pula
        deletpula =deletpula - id
    ElseIf pula\yp <= 30
        Delete pula
        deletpula =deletpula - id
        
    ElseIf pula\xp <= 0
        Delete pula
        deletpula =deletpula - id

    ElseIf pula\xp >= 800
        Delete pula
        deletpula =deletpula - id
    ElseIf  kr=10
        Delete pula
        deletpula =deletpula - id
        
    Else    
    DrawImage(pulaimage, pula\xp, pula\yp,pula\frame)
    EndIf
Next
(Offline)
 
Ответить с цитированием