Ok thanks, here's the whole code:
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.