need help with missle code please

BlitzMax Forums/BlitzMax Programming/need help with missle code please

here's some code if it helps:


SeedRnd MilliSecs()

Global ParticleList:TList = CreateList()

'A partical object, handles particals
Type TParticle
	'set fields
	Field x:Float,y:Float,a:Float = 1,r:Int		'x cords, y cords, alpha, rotation
	Field ox:Int,oy:Int	'original x, original y
	Field img:TImage	'partical image
	Field dx:Float,dy:Float, da:Float	'x direction, y direction(if it moves at all), direction alpha(if it fades)
	Field maxdistance:Int		'The max distance it can live/travel, in frames.
	Field fade:Int		'If the particle fades or remains constant
	Field z:Int	'the level it's drawn at
	
	'Create a new partical to be updated
	'X cord, Y cord, Partical Image, (Direction in degrees, traveling speed, frames that it lasts, if it fades)
	Method Create:TParticle(_x:Int, _y:Int, _img:TImage, _dir:Int = 0, _speed:Float = 0, frames:Int = 1, _fade:Int = False, _z:Int = 0)
		ListAddLast(ParticleList,Self)
		x = _x
		y = _y
		ox = _x
		oy = _y
		img = _img
		dx = Sin(_dir) * _speed
		dy = Cos(_dir) * _speed
		da = 1.0 / frames
		maxdistance = frames
		

		If _fade
			fade = True
		End If
	End Method
	
	'Update a particle object
	Method Update:TParticle()
		x:+dx
		y:+dy
		If fade a:-da
		SetRotation(r)
		SetAlpha(a)
		DrawImage img,x,y
		SetRotation(0)
		SetAlpha(1)
		
		maxdistance:- 1
		If Not maxdistance Then
			Destroy()
		End If
		

	End Method
	
	'Updates all the particles at a Z level
	Method UpdateAll(z:Int = 0)
	
	End Method
	
	Method SetPAlpha(alpha:Float)
		a = alpha
	End Method
	
	Method SetPRotation(rot:Int)
		r = rot
	End Method
	
	Method Destroy()
		ParticleList.Remove(Self)
	End Method
	
	Method SetX(_x:Int)
		x = _x
	End Method
	
	Method SetY(_y:Int)
		y = _y
	End Method
	
	Method DistanceTraveled:Float()
		Local returnx:Float=Abs(ox-y)
		Local returny:Float=Abs(oy-y)
		Return returnx+returny	
	End Method
	
	
End Type


'places a partical at said point for said duration, fading optional, as is moving
Function EmitPartical(_x:Int, _y:Int, image:TImage, frames:Int, fade:Int = True, dir:Int = 0, speed:Float = 0)

	Local part:TParticle = New TParticle.Create(_x, _y, image, dir, speed, frames, fade)

End Function


AppTitle = "Partical trail test"
Graphics 800,600,0
SetBlend alphablend

'Create a dot image (our partical)
Global dot:TImage = CreateImage(20, 20) 
DrawOval 0, 0, 20, 20
GrabImage(dot,0,0)

While Not KeyHit(KEY_ESCAPE)
Cls
	EmitPartical(MouseX(),MouseY(),dot,10)
	For Local UpdateParticles:TParticle = EachIn ParticleList
		UpdateParticles.Update()
	Next
Flip
Wend
End