Object "flicker"when deleted

Blitz3D Forums/Blitz3D Beginners Area/Object "flicker"when deleted

Ok i post the code,just don't care of the italian comment.
Here it comes:
Function muovi_proiettile()
	For missile.bullet=Each bullet
		missile\durata=missile\durata-1
		missile\positionx=missile\positionx
		missile\positiony=missile\positiony-missile\velocita
		counter=counter+1
		DrawImage (missile\immagine,missile\positionx,missile\positiony)
		If missile\durata=<0		;se il missile si e spostato di TOT unita cancellalo(per liberare memoria e tempo processore...)
			Delete missile
			Exit
		EndIf
	
;**************************
;inizio codice relativo alle collisioni,deve stare all'interno della funzione che muove i proiettili
		For a.alieno =Each alieno
			If ImagesCollide(bullet_image,missile\positionx,missile\positiony,0,ObjectFrames(fotogramma),a\posizionex,a\posizioney,0)
				a\vitalita=a\vitalita-missile\potenza	;quando il proiettile collide con l'alieno cala l'energia di esso 
				Delete missile
				Exit		;esce se i type sono cancellati....
			EndIf
		Next
;**************************
;fine codice collisioni
	Next
End Function


Function muovi_alieno()
For a.alieno=Each alieno
	If a\vitalita=<0 
		crea_esplosione(a\posizionex,a\posizioney)
		hi_score=hi_score+a\punteggio
		Delete a
		Exit
	EndIf
	Select a\percorso
		Case 1 path_movement()
		Case 2 strightMov()
	End Select
	If jetdistrutto=False
		casuale=Rnd(0,200)	;generazione di un numero casuale
		If casuale=2 Then create_bullet(a\posizionex,a\posizioney,MouseX(),MouseY(),200,25)	;se e 2
		;la partenza del proiettile nemico sono le coordinate del nemico stesso
	EndIf
Next
End Function
Function read_path()				;funzione che carica da file i dati dei nodi
	file=ReadFile("path_points.txt")					;apro il file creato precedentemente per la lettura
	If file=0 Then Goto uscita			;se non ho aperto nessun file o se il file non esiste esci dalla funzione
	pointer=0							;puntatore al movimento nel file...aumenta di 4 in 4 siccome per un valore nei
									;file vengono allocati automaticamente 4 byte di dati (numeri,stringhe ecc ecc)
	pointer2=0							;puntatore al valore che,incrementando,fa si che leggo i valori nell'array ciclicamente
	For x=1 To max_path_points						;scorre tutti e 10 i valori
		SeekFile (file,pointer)				;mi muovo all'interno del file cosi
		a\pathx#[pointer2]=ReadFloat (file)	;leggo il valore x ,un float-number dentro il primo valore nell'array
		pointer=pointer+4					;mi sposto al prossimo dato dentro il file
		a\pathy#[pointer2]=ReadFloat (file)	;leggo il valore y
		pointer2=pointer2+1					;passo ai prossimi due valori nell'array
		pointer=pointer+4					;mi sposto ancora al prossimo dato nel file
	Next
	CloseFile (file)					;chiudo il file
	.uscita
End Function
Function crea_esplosione(x,y)
c.esplosione=New esplosione
c\posizX=x	;the explosion position is the same as the alien position(considering mid-handle)
c\posizY=y	;see up :P
c\grandezza=1
End Function
Function esplosione()
For c.esplosione=Each esplosione
	Select c\grandezza
		Case 1	;small
			If MilliSecs() > c\timer + 50 Then	;i use a slowdown of 50 millisecs
				c\timer=MilliSecs()
			c\frame=(c\frame+1) Mod 15	;i loop trough the 7 frames of animation:this is a smaller explosion
			EndIf
			DrawImage explosion1,c\posizX,c\posizY,c\frame
			If c\frame => 14 Then Delete c
	End Select
Next
End Function


I think that those 2 function is what contain the "bug".