| can some 1 check my code! i cant work out the bugs . the particles wont freeze, and the text is at the top instead of the bottom of the screen :( 
 
Graphics 1024,768,32,1
SetBuffer BackBuffer()
SeedRnd MilliSecs()
Type bottle_rocket
	Field x,y
	Field vx,vy
	Field hp
End Type
Type stream
	Field x,y
	Field vx,vy
	Field gx,gy
End Type
Type dot
	Field x,y
	Field vx,vy
	Field gx,gy
	Field twitch
	Field r,g,b
	Field rlimit,glimit,blimit
	Field fade
	Field fade_rate
	Field default_color
	Field hp
End Type
Type liner
	Field x1,y1
	Field x2,y2
	Field r,g,b
End Type
slowrate=100
truecls = True
froztxt$ = "no"
scrolly = 768
While Not KeyDown(1)	;MAIN LOOP;
		makecursor()
		updatedots()
		If KeyDown(3) Then create_sparkler()
		create_bottlerocket(); i didnt make this one yet
		If KeyDown(4) Then linemaker(prevmousex,prevmousey)
		prevmousex = MouseX()
		prevmousey = MouseY()
		updateline()
		screenshot()
		displayinfo()
		If KeyHit(2) Then freeze_particles()
	Flip
	If truecls = 1 Then Cls
Wend
Function makecursor()
	dot.dot = New dot
		dot\x = MouseX()
		dot\y = MouseY()
		dot\r = Rand(230,255)
		dot\g = Rand(230,255)
		dot\b = Rand(230,255)
		dot\hp = 0
		dot\fade = 2
End Function
Function create_sparkler()
For number_of_particles = 1 To 3
	dot.dot = New dot
		dot\x = MouseX()
		dot\y = MouseY()
		dot\r = Rand(240,255)
		dot\g = Rand(240,255)
		dot\b = Rand(50,80)
		dot\blimit = 2
		dot\hp = 0
		dot\vx = Rand(-7,7)
		dot\vy = Rand(-6,6)
		dot\gy = 1
		dot\gx = MouseXSpeed/3
		dot\fade = 5
		dot\twitch = 1
Next
number_of_particles = 0
End Function
Function create_bottlerocket()
End Function
Function updatedots()
	For dot.dot = Each dot
			Select dot\default_color
				Case 0
					Color dot\r,dot\g,dot\b ;this draws the dot with its assigned color
				Case 1
					Color dot\r,dot\r,dot\r	;this draws the dot to the grey scale
				Case 2
					
			End Select
		Plot dot\x,dot\y
			dot\x = dot\x + dot\vx 
			dot\y = dot\y + dot\vy
			dot\vx = dot\vx + dot\gx
			dot\vy = dot\vy + dot\gy
			
			If dot\twitch > 0 Then
				dot\x = dot\x + Rand(-dot\twitch,dot\twitch)
				dot\y = dot\y + Rand(-dot\twitch,dot\twitch)
			EndIf
		If freeze = 0
			If dot\r > dot\rlimit Then dot\r=dot\r- Rand(dot\fade,dot\fade*1.2)
			If dot\g > dot\glimit Then dot\g=dot\g- Rand(dot\fade,dot\fade*1.2)
			If dot\b > dot\blimit Then dot\b=dot\b- Rand(dot\fade,dot\fade*1.2)
		EndIf
			If dot\r < 0 Or dot\g < 0 Or dot\b < 0 Then
			Delete dot
			EndIf 
	Next
End Function
Function screenshot()
	If KeyHit(183)
		If FileType("images") <> 2 Then CreateDir("images")
		.check_if_file_exist
		If FileType("screenshot"+screenshot_count+".bmp" <> 0 )Then
			screenshot_count=screenshot_count+1
			Goto check_if_file_exist
		EndIf
		SaveBuffer(BackBuffer(),"images\screenshot"+screenshot_count+".bmp")
	EndIf
End Function
Function displayinfo()
	If KeyHit(59) Then
		Select scrolldirection
			Case 0
				scrolldirection = 1
			Case 1
				scrolldirection = 0
		End Select
	EndIf
		Select scrolldirection
			Case 0
				If scrolly < GraphicsHeight()-20 Then scrolly = scrolly - 2				
			Case 1
				If scrolly > GraphicsHeight() Then scrolly = scrolly + 2
		End Select
		Color 255,255,255
	Text 512,scrolly,"frozen: "+froztxt$+" mouse corridnates: "+MouseX()+" , "+MouseY(),1,0
End Function
Function freeze_particles()
	Select freeze
		Case 0
			freeze = 1
			froztxt$ = "yes"
		Case 1
			freeze = 0
			froztxt$ = "no"
	End Select
	Return freeze
End Function
Function linemaker(prevmousex,prevmousey)
	liner.liner = New liner
		liner\x1 = MouseX()
		liner\y1 = MouseY()
		liner\x2 = prevmousex
		liner\y2 = prevmousey
		liner\r = Rand(245,255)
		liner\g = Rand(245,255)
		liner\b = Rand(60,70)
End Function
Function updateline()
	For liner.liner = Each liner
		Color liner\r,liner\g,liner\b
		Line(liner\x1,liner\y1,liner\x2,liner\y2)
			liner\r = liner\r - Rand(1,2)
			liner\g = liner\g - Rand(2,3)
			If liner\b > 1 Then liner\b = liner\b - Rand(0,1)
			
		If liner\r < 0 Or liner\g < 0 Then
			Delete liner
		EndIf
	Next
End Function
 
 |