OK, I made some changes. How is this?
Strict Graphics 800,600,0,20 Type Image Global ImageList:TList Field xpos,ypos:Int Field _image:TImage Field AlphaLevel:Float Field Scale:Float 'instantiate and each object to List Function Create:Image(startXpos:Int,startYpos:Int,imgAlpha:Float,imgScale:Float) Local arrPath:String[]=["gfx/blue.bmp","gfx/green.bmp","gfx/yellow.bmp","gfx/red.bmp","gfx/orange.bmp","gfx/violet.bmp"] For Local i:String = EachIn arrPath Local img:Image = New Image img._image = LoadImage(i) img.xpos = startXpos img.ypos = startYpos img.AlphaLevel = imgAlpha img.Scale = imgScale Next End Function Method New () If ImageList = Null ImageList = New TList EndIf ImageList.AddLast Self End Method 'go thru each object, scale it and fade object Method Update()'img:Image) Scale:+1.0 AlphaLevel:-0.1 End Method Function Render() SetBlend ALPHABLEND If ((ImageList = Null) Or (ImageList.Count() = 0)) Then Return Local i:Image = Image(ImageList.First()) MidHandleImage i._image SetScale i.Scale,i.Scale SetAlpha i.AlphaLevel DrawImage i._image, (i.xpos), i.ypos If i.Scale >= 15.0 Then ListRemove ImageList,i i.Scale=1.0 i.AlphaLevel=1.0 EndIf i.Update() End Function End Type 'main While Not KeyHit(KEY_ESCAPE) Cls If MouseHit(1) Then Image.Create((GraphicsWidth() / 2),(GraphicsHeight() / 2),1.0,1.0) EndIf Image.Render() Flip() FlushMem() Wend