Ok thanks, here's the whole code:
The length is just because of all the datastatements i have in there atm.
Strict Type Invader Field ID:TLink Field PosX:Float Field PosY:Float Field IType:Int Global MoveX:Float Global MoveY:Float Method Draw() If IType = 1 Then SetColor 255, 0, 0 If IType = 2 Then SetColor 0, 255, 0 If IType = 3 Then SetColor 0, 0, 255 DrawRect PosX+5, PosY+5, 40, 40 End Method End Type Type Bullet Field ID:TLink Field PosX:Float Field PosY:Float Field Direction:Float Field BType:Int End Type Global InvaderList:TList = CreateList() Global BulletList:TList = CreateList() Global ColArr[11,5] Global RowArr[5,11] Global Shield1[60,60] Global Shield2[60,60] Global Shield3[60,60] Global Shield4[60,60] AppTitle = "Space Invaders" Graphics 800, 600, 0, 0 HideMouse CreateInvaders() While Not KeyHit(KEY_ESCAPE) Draw() FlushMem Wend Function Draw() Local D:Invader Local CountX:Int Local CountY:Int Cls SetColor 255, 255, 255 DrawLine 0, 25, 800, 25 DrawLine 0, 560, 800, 560 DrawText "Score: ", 5, 5 For CountX = 1 To 59 For CountY = 1 To 59 If Shield1[CountX,CountY] = True Then Plot(CountX+112,CountY+450) If Shield2[CountX,CountY] = True Then Plot(CountX+284,CountY+450) If Shield3[CountX,CountY] = True Then Plot(CountX+456,CountY+450) If Shield4[CountX,CountY] = True Then Plot(CountX+628,CountY+450) Next Next For D:Invader = EachIn InvaderList D.Draw() Next Flip D = Null CountX = Null CountY = Null End Function Function CreateInvaders() Local C:Invader Local CountC:Int Local CountR:Int For CountC = 0 To 10 For CountR = 0 To 4 C:Invader = New Invader C.ID = ListAddLast(InvaderList,C) C.PosX = Float(CountC*50) C.PosY = Float((CountR*50)+85) If CountR+1 = 1 Then C.IType = 3; Continue 'This gives a difference in the rows If CountR+1 < 4 Then C.IType = 2; Continue If CountR+1 < 6 Then C.IType = 1; Continue Rem Allows us to know where each Invader is situated. This means we can see which invaders can fire (as we will only allow the front line to shoot - dont want to kill themselves!) End Rem ColArr[CountC+1,CountR+1] = C.ID RowArr[CountR+1,CountC+1] = C.ID Next Next C.MoveX = 125.0 'Positions the invaders directly in middle of screen C.MoveY = 0.0 For CountC = 1 To 60 For CountR = 1 To 60 Shield1[CountC,CountR] = True Shield2[CountC,CountR] = Shield1[CountC,CountR] Shield3[CountC,CountR] = True Shield4[CountC,CountR] = Shield1[CountC,CountR] Next Next RestoreData Color For CountC = 1 To 553 Local X, Y ReadData X, Y Shield1[X,Y] = False Shield2[X,Y] = False Shield3[X,Y] = False Shield4[X,Y] = False Next C = Null CountC = Null CountR = Null End Function #Color DefData 1, 1 DefData 1, 2 DefData 1, 3 DefData 1, 4 DefData 1, 5 DefData 1, 6 DefData 1, 7 DefData 1, 8 DefData 1, 9 DefData 1, 10 DefData 1, 11 DefData 1, 12 DefData 1, 13 DefData 1, 14 DefData 2, 1 DefData 2, 2 DefData 2, 3 DefData 2, 4 DefData 2, 5 DefData 2, 6 DefData 2, 7 DefData 2, 8 DefData 2, 9 DefData 2, 10 DefData 2, 11 DefData 2, 12 DefData 2, 13 DefData 3, 1 DefData 3, 2 DefData 3, 3 DefData 3, 4 DefData 3, 5 DefData 3, 6 DefData 3, 7 DefData 3, 8 DefData 3, 9 DefData 3, 10 DefData 3, 11 DefData 3, 12 DefData 4, 1 DefData 4, 2 DefData 4, 3 DefData 4, 4 DefData 4, 5 DefData 4, 6 DefData 4, 7 DefData 4, 8 DefData 4, 9 DefData 4, 10 DefData 4, 11 DefData 5, 1 DefData 5, 2 DefData 5, 3 DefData 5, 4 DefData 5, 5 DefData 5, 6 DefData 5, 7 DefData 5, 8 DefData 5, 9 DefData 5, 10 DefData 6, 1 DefData 6, 2 DefData 6, 3 DefData 6, 4 DefData 6, 5 DefData 6, 6 DefData 6, 7 DefData 6, 8 DefData 6, 9 DefData 7, 1 DefData 7, 2 DefData 7, 3 DefData 7, 4 DefData 7, 5 DefData 7, 6 DefData 7, 7 DefData 7, 8 DefData 8, 1 DefData 8, 2 DefData 8, 3 DefData 8, 4 DefData 8, 5 DefData 8, 6 DefData 8, 7 DefData 9, 1 DefData 9, 2 DefData 9, 3 DefData 9, 4 DefData 9, 5 DefData 9, 6 DefData 10, 1 DefData 10, 2 DefData 10, 3 DefData 10, 4 DefData 10, 5 DefData 11, 1 DefData 11, 2 DefData 11, 3 DefData 11, 4 DefData 12, 1 DefData 12, 2 DefData 12, 3 DefData 13, 1 DefData 13, 2 DefData 14, 1 DefData 19, 46 DefData 19, 47 DefData 19, 48 DefData 19, 49 DefData 19, 50 DefData 19, 51 DefData 19, 52 DefData 19, 53 DefData 19, 54 DefData 19, 55 DefData 19, 56 DefData 19, 57 DefData 19, 58 DefData 19, 59 DefData 20, 45 DefData 20, 46 DefData 20, 47 DefData 20, 48 DefData 20, 49 DefData 20, 50 DefData 20, 51 DefData 20, 52 DefData 20, 53 DefData 20, 54 DefData 20, 55 DefData 20, 56 DefData 20, 57 DefData 20, 58 DefData 20, 59 DefData 21, 45 DefData 21, 46 DefData 21, 47 DefData 21, 48 DefData 21, 49 DefData 21, 50 DefData 21, 51 DefData 21, 52 DefData 21, 53 DefData 21, 54 DefData 21, 55 DefData 21, 56 DefData 21, 57 DefData 21, 58 DefData 21, 59 DefData 22, 45 DefData 22, 46 DefData 22, 47 DefData 22, 48 DefData 22, 49 DefData 22, 50 DefData 22, 51 DefData 22, 52 DefData 22, 53 DefData 22, 54 DefData 22, 55 DefData 22, 56 DefData 22, 57 DefData 22, 58 DefData 22, 59 DefData 23, 45 DefData 23, 46 DefData 23, 47 DefData 23, 48 DefData 23, 49 DefData 23, 50 DefData 23, 51 DefData 23, 52 DefData 23, 53 DefData 23, 54 DefData 23, 55 DefData 23, 56 DefData 23, 57 DefData 23, 58 DefData 23, 59 DefData 24, 45 DefData 24, 46 DefData 24, 47 DefData 24, 48 DefData 24, 49 DefData 24, 50 DefData 24, 51 DefData 24, 52 DefData 24, 53 DefData 24, 54 DefData 24, 55 DefData 24, 56 DefData 24, 57 DefData 24, 58 DefData 24, 59 DefData 25, 45 DefData 25, 46 DefData 25, 47 DefData 25, 48 DefData 25, 49 DefData 25, 50 DefData 25, 51 DefData 25, 52 DefData 25, 53 DefData 25, 54 DefData 25, 55 DefData 25, 56 DefData 25, 57 DefData 25, 58 DefData 25, 59 DefData 26, 45 DefData 26, 46 DefData 26, 47 DefData 26, 48 DefData 26, 49 DefData 26, 50 DefData 26, 51 DefData 26, 52 DefData 26, 53 DefData 26, 54 DefData 26, 55 DefData 26, 56 DefData 26, 57 DefData 26, 58 DefData 26, 59 DefData 27, 45 DefData 27, 46 DefData 27, 47 DefData 27, 48 DefData 27, 49 DefData 27, 50 DefData 27, 51 DefData 27, 52 DefData 27, 53 DefData 27, 54 DefData 27, 55 DefData 27, 56 DefData 27, 57 DefData 27, 58 DefData 27, 59 DefData 28, 45 DefData 28, 46 DefData 28, 47 DefData 28, 48 DefData 28, 49 DefData 28, 50 DefData 28, 51 DefData 28, 52 DefData 28, 53 DefData 28, 54 DefData 28, 55 DefData 28, 56 DefData 28, 57 DefData 28, 58 DefData 28, 59 DefData 29, 45 DefData 29, 46 DefData 29, 47 DefData 29, 48 DefData 29, 49 DefData 29, 50 DefData 29, 51 DefData 29, 52 DefData 29, 53 DefData 29, 54 DefData 29, 55 DefData 29, 56 DefData 29, 57 DefData 29, 58 DefData 29, 59 DefData 30, 45 DefData 30, 46 DefData 30, 47 DefData 30, 48 DefData 30, 49 DefData 30, 50 DefData 30, 51 DefData 30, 52 DefData 30, 53 DefData 30, 54 DefData 30, 55 DefData 30, 56 DefData 30, 57 DefData 30, 58 DefData 30, 59 DefData 31, 45 DefData 31, 46 DefData 31, 47 DefData 31, 48 DefData 31, 49 DefData 31, 50 DefData 31, 51 DefData 31, 52 DefData 31, 53 DefData 31, 54 DefData 31, 55 DefData 31, 56 DefData 31, 57 DefData 31, 58 DefData 31, 59 DefData 32, 45 DefData 32, 46 DefData 32, 47 DefData 32, 48 DefData 32, 49 DefData 32, 50 DefData 32, 51 DefData 32, 52 DefData 32, 53 DefData 32, 54 DefData 32, 55 DefData 32, 56 DefData 32, 57 DefData 32, 58 DefData 32, 59 DefData 33, 45 DefData 33, 46 DefData 33, 47 DefData 33, 48 DefData 33, 49 DefData 33, 50 DefData 33, 51 DefData 33, 52 DefData 33, 53 DefData 33, 54 DefData 33, 55 DefData 33, 56 DefData 33, 57 DefData 33, 58 DefData 33, 59 DefData 34, 45 DefData 34, 46 DefData 34, 47 DefData 34, 48 DefData 34, 49 DefData 34, 50 DefData 34, 51 DefData 34, 52 DefData 34, 53 DefData 34, 54 DefData 34, 55 DefData 34, 56 DefData 34, 57 DefData 34, 58 DefData 34, 59 DefData 35, 45 DefData 35, 46 DefData 35, 47 DefData 35, 48 DefData 35, 49 DefData 35, 50 DefData 35, 51 DefData 35, 52 DefData 35, 53 DefData 35, 54 DefData 35, 55 DefData 35, 56 DefData 35, 57 DefData 35, 58 DefData 35, 59 DefData 36, 45 DefData 36, 46 DefData 36, 47 DefData 36, 48 DefData 36, 49 DefData 36, 50 DefData 36, 51 DefData 36, 52 DefData 36, 53 DefData 36, 54 DefData 36, 55 DefData 36, 56 DefData 36, 57 DefData 36, 58 DefData 36, 59 DefData 37, 45 DefData 37, 46 DefData 37, 47 DefData 37, 48 DefData 37, 49 DefData 37, 50 DefData 37, 51 DefData 37, 52 DefData 37, 53 DefData 37, 54 DefData 37, 55 DefData 37, 56 DefData 37, 57 DefData 37, 58 DefData 37, 59 DefData 38, 45 DefData 38, 46 DefData 38, 47 DefData 38, 48 DefData 38, 49 DefData 38, 50 DefData 38, 51 DefData 38, 52 DefData 38, 53 DefData 38, 54 DefData 38, 55 DefData 38, 56 DefData 38, 57 DefData 38, 58 DefData 38, 59 DefData 39, 45 DefData 39, 46 DefData 39, 47 DefData 39, 48 DefData 39, 49 DefData 39, 50 DefData 39, 51 DefData 39, 52 DefData 39, 53 DefData 39, 54 DefData 39, 55 DefData 39, 56 DefData 39, 57 DefData 39, 58 DefData 39, 59 DefData 40, 46 DefData 40, 47 DefData 40, 48 DefData 40, 49 DefData 40, 50 DefData 40, 51 DefData 40, 52 DefData 40, 53 DefData 40, 54 DefData 40, 55 DefData 40, 56 DefData 40, 57 DefData 40, 58 DefData 40, 59 DefData 45, 1 DefData 46, 1 DefData 46, 2 DefData 47, 1 DefData 47, 2 DefData 47, 3 DefData 48, 1 DefData 48, 2 DefData 48, 3 DefData 48, 4 DefData 49, 1 DefData 49, 2 DefData 49, 3 DefData 49, 4 DefData 49, 5 DefData 50, 1 DefData 50, 2 DefData 50, 3 DefData 50, 4 DefData 50, 5 DefData 50, 6 DefData 51, 1 DefData 51, 2 DefData 51, 3 DefData 51, 4 DefData 51, 5 DefData 51, 6 DefData 51, 7 DefData 52, 1 DefData 52, 2 DefData 52, 3 DefData 52, 4 DefData 52, 5 DefData 52, 6 DefData 52, 7 DefData 52, 8 DefData 53, 1 DefData 53, 2 DefData 53, 3 DefData 53, 4 DefData 53, 5 DefData 53, 6 DefData 53, 7 DefData 53, 8 DefData 53, 9 DefData 54, 1 DefData 54, 2 DefData 54, 3 DefData 54, 4 DefData 54, 5 DefData 54, 6 DefData 54, 7 DefData 54, 8 DefData 54, 9 DefData 54, 10 DefData 55, 1 DefData 55, 2 DefData 55, 3 DefData 55, 4 DefData 55, 5 DefData 55, 6 DefData 55, 7 DefData 55, 8 DefData 55, 9 DefData 55, 10 DefData 55, 11 DefData 56, 1 DefData 56, 2 DefData 56, 3 DefData 56, 4 DefData 56, 5 DefData 56, 6 DefData 56, 7 DefData 56, 8 DefData 56, 9 DefData 56, 10 DefData 56, 11 DefData 56, 12 DefData 57, 1 DefData 57, 2 DefData 57, 3 DefData 57, 4 DefData 57, 5 DefData 57, 6 DefData 57, 7 DefData 57, 8 DefData 57, 9 DefData 57, 10 DefData 57, 11 DefData 57, 12 DefData 57, 13 DefData 58, 1 DefData 58, 2 DefData 58, 3 DefData 58, 4 DefData 58, 5 DefData 58, 6 DefData 58, 7 DefData 58, 8 DefData 58, 9 DefData 58, 10 DefData 58, 11 DefData 58, 12 DefData 58, 13 DefData 58, 14 DefData 59, 1 DefData 59, 2 DefData 59, 3 DefData 59, 4 DefData 59, 5 DefData 59, 6 DefData 59, 7 DefData 59, 8 DefData 59, 9 DefData 59, 10 DefData 59, 11 DefData 59, 12 DefData 59, 13 DefData 59, 14 DefData 59, 15
The length is just because of all the datastatements i have in there atm.