If someone is interested - here is the source:
it uses the BlueGui plugin (only for messages) and the image enhance plugin (for ost of the 2D stuff) - so to compile maybe you have to code around...
Rem Project: Game Structure
Rem Created: 18.03.04
`{- Basic Settings
Sync on
`Sync rate 50
Set text size 30
Set text font "Justov"
Backdrop off
Cls
Randomize Timer()
`}
`{- Constants
`Systemconstants
#constant MaxGameText 20
#constant WahlTextSize 45
#constant MaxWahlText 3
#constant Screenwidth 1024
#constant Screenheight 768
`GameConstants
#constant MaxEnemy 50
#constant MaxOwnBullet 150
#constant MaxEnemyBullet 100
#constant MaxPlayerAddOns 10
#constant ShieldSprite 17
#constant PlayerShipSprite 100
#constant MaxExplosions 15
#constant Shootdelay 70
#constant ExploDelay 4
#constant PopUpSpeed 3
#constant MaxLevel 8
`}
`{- System - vars
`{game
Global version_info$ = "0.1"
Global orig$
orig$ = Get dir$() + "\"
Global Gamename$
Gamename$ = "Shoot em up"
Global GameExtension$
GameExtension$ = "sds"
Dim gametext(MaxGameText) As string
Global sx
Global sy
`}
`{vars for ini-settings
Global loaddir$
Global savedir$
Global Langfilename$
`}
`{Load ini-file
fname$ = orig$ + Gamename$ + ".ini"
If File exist(fname$)
Open to read 1, fname$
Read string 1, loaddir$
Read string 1, savedir$
Read string 1, Langfilename$
Close file 1
Else : `Presets
loaddir$ = orig$
savedir$ = orig$
Langfilename$ = orig$ + "English.lng"
Endif
`}
loadlanguagefile()
`{for highscore
Type hsc
pts As Integer
name As string
Endtype
Global hslitems : `number of highscore entries
hslitems = 15
Dim hs(hslitems) As hsc
Global maxname = 15 : `# charsn per name
Global scname$ = "scorelist.gme" : `name of highscore-files
Global points As Integer
`}
`}
`{- Game Variables
`Structures
Type Bullet
x
y
zx
zy
hitpoints
Imagenr
spritenr
speed
Endtype
Type Ship
x
y
zx
zy
hitpoints
Imagenr
spritenr
speed
art
spec
Endtype
Type addon
art
anz
speed
hitpoints
imagenr
Endtype
Type explo
x
y
frame
intens
art
imagenr
spritenr
cnt
Endtype
Type pop
x
y
art
spritenr
Endtype
`Bullets
Dim EnemyBullet(0) As Bullet
Dim Playerbullet(0) As Bullet
`Ships
Dim Enemyship(0) As Ship
Dim Playership(0) As Ship
Dim PopUps(0) As pop : `Sprites for popups
Dim Playeraddons(0) As addon
Dim popart(MaxPlayerAddOns, 4) : `(same as Structur Addon)
Dim explosions(MaxExplosions) As explo
Dim Enemyart(7, 11)
`{ write enemyarten in file
` 0 zx
` 1 zy
` 2 hitpoints
` 3 Imagenr
` 4 speed
` 5 Bulletspeed
` 6 bullet hitpoints
` 7 Bullet image
` 8 Sound shoot
` 9 shoot change
`10 points fo hit
`11 Explosionnumber (1-6)
If File exist("C:\DarkBasic\Projects\Space shooter\Media\enem.ini")
Delete file "C:\DarkBasic\Projects\Space shooter\Media\enem.ini"
Endif
Open to write 1, "C:\DarkBasic\Projects\Space shooter\Media\enem.ini"
Write file 1, -4 : `Enemy 0
Write file 1, 2
Write file 1, 200
Write file 1, 200
Write file 1, 15
Write file 1, 9
Write file 1, 9
Write file 1, 100
Write file 1, 12
Write file 1, 50
Write file 1, 5
Write file 1, 0
Write file 1, 1 : `Enemy 1
Write file 1, 5
Write file 1, 200
Write file 1, 200
Write file 1, 10
Write file 1, 5
Write file 1, 5
Write file 1, 100
Write file 1, 12
Write file 1, 50
Write file 1, 15
Write file 1, 1
Write file 1, -4 : `Enemy 2
Write file 1, 2
Write file 1, 150
Write file 1, 201
Write file 1, 11
Write file 1, 6
Write file 1, 10
Write file 1, 101
Write file 1, 12
Write file 1, 80
Write file 1, 10
Write file 1, 2
Write file 1, -2 : `Enemy 3
Write file 1, 2
Write file 1, 350
Write file 1, 202
Write file 1, 11
Write file 1, 12
Write file 1, 3
Write file 1, 102
Write file 1, 12
Write file 1, 35
Write file 1, 15
Write file 1, 3
Write file 1, 3 : `Enemy 4
Write file 1, 2
Write file 1, 400
Write file 1, 203
Write file 1, 12
Write file 1, 2
Write file 1, 5
Write file 1, 103
Write file 1, 12
Write file 1, 30
Write file 1, 30
Write file 1, 4
Write file 1, -2 : `Enemy 5
Write file 1, 7
Write file 1, 450
Write file 1, 204
Write file 1, 13
Write file 1, 12
Write file 1, 3
Write file 1, 102
Write file 1, 12
Write file 1, 200
Write file 1, 50
Write file 1, 5
Write file 1, 3 : `Enemy 6
Write file 1, 3
Write file 1, 700
Write file 1, 205
Write file 1, 14
Write file 1, 15
Write file 1, 15
Write file 1, 104
Write file 1, 12
Write file 1, 50
Write file 1, 50
Write file 1, 6
Write file 1, 0 : `Popupper (7)
Write file 1, 2
Write file 1, 600
Write file 1, 206
Write file 1, 14
Write file 1, 15
Write file 1, 15
Write file 1, 104
Write file 1, 12
Write file 1, 0
Write file 1, 0
Write file 1, 6
Close file 1
`}
`{ write popuparten in file
If File exist("C:\DarkBasic\Projects\Space shooter\Media\pop.ini")
Delete file "C:\DarkBasic\Projects\Space shooter\Media\pop.ini"
Endif
Open to write 1, "C:\DarkBasic\Projects\Space shooter\Media\pop.ini"
Write file 1, 1 : ` anz Standard popart
Write file 1, 7 : ` speed
Write file 1, 35 : `hitpoints
Write file 1, 11 : `imagenr
Write file 1, 1 : `1
Write file 1, 10
Write file 1, 50
Write file 1, 11
Write file 1, 1 : `2
Write file 1, 8
Write file 1, 70
Write file 1, 12
Write file 1, 1 : `3
Write file 1, 12
Write file 1, 70
Write file 1, 12
Write file 1, 1 : `4
Write file 1, 10
Write file 1, 90
Write file 1, 13
Write file 1, 1 : `5
Write file 1, 14
Write file 1, 100
Write file 1, 13
Write file 1, 1 : `6
Write file 1, 10
Write file 1, 120
Write file 1, 14
Write file 1, 1 : `7
Write file 1, 16
Write file 1, 150
Write file 1, 14
Write file 1, 1 : `8
Write file 1, 15
Write file 1, 170
Write file 1, 15
Write file 1, 1 : `9
Write file 1, 20
Write file 1, 200
Write file 1, 15
Write file 1, 1 : `10
Write file 1, 30
Write file 1, 280
Write file 1, 16
Close file 1
`}
`{ load enemyarten fom file
Open to read 1, "C:\DarkBasic\Projects\Space shooter\Media\enem.ini"
For x = 0 To 7
For y = 0 To 11
Read file 1, Enemyart(x, y)
Next blah
Next blah
Close file 1
`}
`{ load popuparten from file
Open to read 1, "C:\DarkBasic\Projects\Space shooter\Media\pop.ini"
For x = 0 To MaxPlayerAddOns
popart(x, 0) = x
For y = 1 To 4
Read file 1, popart(x, y)
Next blah
Next blah
Close file 1
`}
Global playerpoints
Global playerlifes
Global weaponanzahl
Global ShipSpeed
Global level
Global levelcount
Global leveldelay
Global levelstart
Global levelende
Global shields
Global shieldpoints
Global altshieldpoints
Global Failed
`}
`{- Intro
`load image
`Load image "intro.jpg", 1, 1
`If Image exist(1) = 1
`make image (as an alternative)
If Make image(1, Screen width(), Screen height()) <> -1
Cli 1, Rgb(128, 128, 128)
Ink Rgb(255, 128, 192), 0
Set text size 80
Image center text 1, Screen width()/2, Screen height()/2, Gamename$
Set text size 15
`zeige bild
Paste image 1, 0, 0
Sync
Sync
Repeat
Wait 100
Until Scancode() <> 0 Or Mouseclick() <> 0
Else
Message "Error", "Could not show intro screen"
Endif
`}
`{- Game pre settings
` load Bilder für Ship, Bullet und Enemy
Load image "C:\DarkBasic\Projects\Space shooter\Media\ship.bmp", 10, 1 : `Player Ship
Load image "C:\DarkBasic\Projects\Space shooter\Media\schuss1.bmp", 11, 1 : `Player bullet 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\schuss2.bmp", 12, 1 : `Player bullet 2
Load image "C:\DarkBasic\Projects\Space shooter\Media\schuss3.bmp", 13, 1 : `Player bullet 3
Load image "C:\DarkBasic\Projects\Space shooter\Media\schuss4.bmp", 14, 1 : `Player bullet 4
Load image "C:\DarkBasic\Projects\Space shooter\Media\schuss5.bmp", 15, 1 : `Player bullet 5
Load image "C:\DarkBasic\Projects\Space shooter\Media\schuss6.bmp", 16, 1 : `Player bullet 6
Playership(0).imagenr = 17
Scale image 10, 18, 16, 16 : `image for playerlifes
Bright image 18, 150, 150, 150
Load image "C:\DarkBasic\Projects\Space shooter\Media\shield.jpg", 19, 1 : `Display shield number
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemybullet.bmp", 100, 1 : `Enemybullet 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemybullet1.bmp", 101, 1 : `Enemybullet 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemybullet2.bmp", 102, 1 : `Enemybullet 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemybullet3.bmp", 103, 1 : `Enemybullet 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemybullet4.bmp", 104, 1 : `Enemybullet 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemy1.bmp", 200, 1 : `Enemyship 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemy2.bmp", 201, 1 : `Enemyship 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemy3.bmp", 202, 1 : `Enemyship 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemy4.bmp", 203, 1 : `Enemyship 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemy5.bmp", 204, 1 : `Enemyship 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\enemy6.bmp", 205, 1 : `Enemyship 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\popupper.bmp", 206, 1 : `Popupper
`Explosions
Load image "C:\DarkBasic\Projects\Space shooter\Media\EX1.jpg", 300, 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\EX2.jpg", 301, 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\EX3.jpg", 302, 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\EX4.jpg", 303, 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\EX5.jpg", 304, 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\EX6.jpg", 305, 1
`a 16 images per explosion, Imagenumber 400-415, 20 - 435 etc.
t = 400
For img = 300 To 305
imgx = Image width(img)/4
imgy = Image height(img)/4
For y = 0 To 3
For x = 0 To 3
Clone image rect img, t + (img-300) * 20 + y*4 + x, x * imgx, y * imgy, (x+1) * imgx, (y+1) * imgy
Next blah
Next blah
Next blah
Load image "C:\DarkBasic\Projects\Space shooter\Media\popup.bmp", 149, 1
Load image "C:\DarkBasic\Projects\Space shooter\Media\back.bmp", 150, 1
`move over main Menu
Load sound "C:\DarkBasic\Projects\Space shooter\Media\move.wav", 1
` Load sound for shoot und hit
Load sound "C:\DarkBasic\Projects\Space shooter\Media\Thip.wav", 10, : `player shoot
Load sound "C:\DarkBasic\Projects\Space shooter\Media\crash.wav", 11 : `playerhit
Load sound "C:\DarkBasic\Projects\Space shooter\Media\laser.wav", 12 : `Enemyshoot
Load sound "C:\DarkBasic\Projects\Space shooter\Media\explode2.wav", 13 : `Enemyhit
Load sound "C:\DarkBasic\Projects\Space shooter\Media\Popup.wav", 14 : `POPUP
Load sound "C:\DarkBasic\Projects\Space shooter\Media\Largecrash.wav", 15 : `Collision 2 Ships
Load sound "C:\DarkBasic\Projects\Space shooter\Media\Shield.wav", 16 : `Shieldhit
Load sound "C:\DarkBasic\Projects\Space shooter\Media\Lifes.wav", 17 : `new life
Load sound "C:\DarkBasic\Projects\Space shooter\Media\destroy.wav", 18 : `Destroy
`Usage of sprites
Remstart
Playership
150 Background
200 - 200 + MaxEnemy
500 - 500 + MaxEnemyBullet
1000 - 1000 + MaxOwnBullet
2000 - explosions
3000 - PopUps
Remend
Empty array EnemyBullet()
Empty array Enemyship()
Empty array explosions()
Empty array Playerbullet()
`}
Repeat : `- MAINLOOP
`{- - Start - SELECTION
`Show Selectionscreen
If Make image(2, Screen width(), Screen height()) = -1
Message "Error", "Could not show screen"
Endif
`}
`{- - SELECTION LOOP
wahl = 0
altwahlstat = 0
`wahl = 1 : `zu testzwecken
Repeat
reset = 0
For x = 1 To MaxWahlText
wahlstat = Mousezone(sx - Text width(gametext(x-1))/2, sy + 2 * x * WahlTextSize - Text height(gametext(x-1))/2, sx + Text width(gametext(x-1))/2, sy + 2 * x * WahlTextSize + Text height(gametext(x-1))/2)
If wahlstat > 0
`Mouse over
showoption(x)
reset = 1
If altwahlstat <> x
altwahlstat = x
Play sound 1
Endif
If wahlstat = 2 : `Mouse clicked
wahl = x
Endif
Endif
Next blah
If reset = 0
showoption(0)
altwahlstat = 0
Endif
Until wahl <> 0
Set text to normal
`}
Select wahl
Case 1 : `GameStart
Gosub New_Game
Endcase
Case 2 : `Lade spiel
Gosub Info_Game
Endcase
Case 3 : `Optionen
Gosub Game_Options
Endcase
`wahl = 4 beendet die Schleife
Endselect
`}
`{- - Game loop
If wahl = 1
spielende = 0
Repeat :`- - Main Game loop
rundenende = 0
Repeat : `- - Turn loop
t1 = Timer()
Gosub Show_Events
Gosub Enemy_action
Gosub Player_Action
Gosub Turn_Summary
Cls
Set text size 14
Fgc Rgb(255, 255, 255)
Text 500, 10, "points: " + Str$(playerpoints)
Text 700, 10, "level / cnt: " + Str$(level) + " -> " + Str$(shipcounter)
Text 900, 5, "FPS: " + Str$(Screen fps())
Sync
t2 = Timer()
Wait 20 - (t2-t1)
If Playership(0).spritenr = 0
If Array count(EnemyBullet()) = -1 And Array count(Playerbullet()) = -1 And Array count(explosions()) = -1 And Array count(Enemyship()) = -1
rundenende = 1
Endif
Endif
Until rundenende = 1 : `Or Playership(0).spritenr = 0
If spielende <> 1
Dec playerlifes
ShowShipStats()
MakeNewPlayer(Screen width()/2, Screen height() - 60, 75)
Endif
Until spielende = 1 Or playerlifes < 1
`- - Highscore
points = playerpoints
If Sprite exist(PlayerShipSprite) = 1
Delete sprite PlayerShipSprite
Endif
Gosub Highscore
`- - Query new game
Gosub Query_New_Game
Endif
`}
Until wahl = MaxWahlText
`{-Programm End
`Show Extro-Screen
Gosub Extro_screen
`save Ini-File
fname$ = orig$ + Gamename$ + ".ini"
If File exist(fname$)
Delete file fname$
Endif
Open to write 1, fname$
Write string 1, loaddir$
Write string 1, savedir$
Write string 1, Langfilename$
Close file 1
End
`}
`{- Procedures
New_Game:
`{
`{ Settings
level = 1 : `temp
levelende = 0
levelcount = 0
leveldelay = 0
leveldelay = 0
playerpoints = 1
levelstart = 1
Empty array PopUps()
Empty array Playeraddons()
Array insert at bottom Playeraddons()
` 1. Popup
Playeraddons().art = 1
Playeraddons().anz = popart(0, 1)
Playeraddons().speed = popart(0, 2)
Playeraddons().hitpoints = popart(0, 3)
Playeraddons().imagenr = popart(0, 4)
`Shipdata
weaponanzahl = 1
ShipSpeed = 20
shields = 0
shieldpoints = 0
altshieldpoints = 0
playerlifes = 1
Failed = FALSE
If Image exist(17) = 1
Delete image 17
Endif
Clone image 10, 17
`}
`Schiff placing
MakeNewPlayer(Screen width()/2, Screen height() - 60, 75)
ShowStatistics()
ShowShipStats()
`Background
` Make object plain 150, 100, 100
` Texture object 150, 150
` Position object 150, 0, 0, 0
` Position camera 50, -50, 50
`}
Return
Load_Game:
`{ - laod agme
Set default dir scenedir$
filename$ = Open dialog("Load game", "game files (*." + GameExtension$ + ")|*." + GameExtension$ + "")
If filename$ <> ""
loaddir$ = getpathpart(filename$) : `set Loadpath
If File exist(filename$) = 1
Open to read 1, filename$
`read the data
Close file 1
Else
Message "Error laoding Game file", "File not found"
Endif
Endif
`}
Return
Save_Game:
`{ - save Game
Set default dir scenedir$
filename$ = Save dialog("Save game", Gamename$+ " files (*." + GameExtension$ + ")|*." + GameExtension$ + ")")
doit = 1
If filename$ <> ""
`default extension
If getextensionpart(filename$) = ""
filename$ = filename$ + "." + GameExtension$
Endif
savedir$ = getpathpart(filename$) : `save path
If File exist(filename$)
doit = Question message("Overide " + getfilepart(filename$) + "?")
If doit
Delete file filename$
Endif
Endif
If doit
Open to write 1, filename$
`Game settings writen
Close file 1
Endif
Endif
`}
Return
Game_Options:
`{ - Options
`{- - Start - SELECTION
`Show Selectionscreen
If Make image(2, Screen width(), Screen height()) <> -1
Ink WEISS, SCHWARZ
Set text size 60
Image center text 3, sx, 50, "OPTIONS"
Set text size 30
Set text size WahlTextSize
Set text to bold
For x = 1 To MaxWahlText
Image center text 2, sx, (Screen height()>>2) + x * WahlTextSize, "XXXX"
Next blah
`zeige bild
Paste image 2, 0, 0
Sync
Else
Message "Error", "Could not show screen"
Endif
`}
`{- - SELECTION LOOP
wahl = 0
altwahlstat = 0
`wahl = 1 : `zu testzwecken
Repeat
reset = 0
For x = 1 To MaxWahlText
wahlstat = Mousezone(sx - Text width(gametext(x-1))/2, sy + 2 * x * WahlTextSize - Text height(gametext(x-1))/2, sx + Text width(gametext(x-1))/2, sy + 2 * x * WahlTextSize + Text height(gametext(x-1))/2)
If wahlstat > 0
`Mouse over
showoption(x)
reset = 1
If altwahlstat <> x
altwahlstat = x
Play sound 1
Endif
If wahlstat = 2 : `Mouse clicked
wahl = x
Endif
Endif
Next blah
If reset = 0
showoption(0)
altwahlstat = 0
Endif
Until wahl <> 0
Delete image 2
Set text to normal
Delete image 2
`}
Select wahl
Case 1 : `GameStart
Gosub New_Game
Endcase
`wahl = 4 beendet die Schleife
Endselect
`}
`}
Return
Info_Game:
`{ - Game Info / help
If Make image(3, 1023, 768) <> -1
If lock image(3) <> -1
Set text size 60
Image center text 3, sx, 50, "INFO"
Set text size 30
Image text 3, 200, 100, "Ships"
Image text 3, 300, 100, "Hit"
Image text 3, 450, 100, "Bullets"
Image text 3, 550, 100, "Hits"
Image text 3, 700, 100, "POINTS"
For x = 1 To 7
Paste image image Enemyart(x, 3), 3, 200, 100 + x * 80 : ` Imagenr
Paste image image Enemyart(x, 7), 3, 450, 100 + x * 80 : ` Bullet image
Image text 3, 300, 100 + x * 80, Str$(Enemyart(x, 2)) : `hitpoints
Image text 3, 560, 100 + x * 80, Str$(Enemyart(x, 6)) : `bullet hitpoints
Image text 3, 720, 100 + x * 80, Str$(Enemyart(x, 10)) : `points
Next blah
Unlock image 3
Paste image 3, 0, 0
Sync
Wait 500
Wait mouse
Delete image 3
Endif
Endif
`}
Return
Show_Events:
`{ - Anzeigen_besondere_Ereignisse
`}
Return
Enemy_action:
`{ - aktionen_gegner
For x = 0 To Array count(Enemyship())
If Playership(0).spritenr <> 0
`Movement change direction?
If Rnd(1000) < 200
Inc Enemyship(x).zx, Rnd(2)-1
Inc Enemyship(x).zy, Rnd(2)-1
Endif
If Enemyship(x).zy < 0
Inc Enemyship(x).zy
Endif
If Enemyship(x).zy > 6 + level
Dec Enemyship(x).zy
Endif
`entscheide über Bewegungen
Inc Enemyship(x).x, Enemyship(x).zx
Inc Enemyship(x).y, Enemyship(x).zy
`Entscheide über Schuss
If Rnd(1000) < Enemyart(Enemyship(x).art, 9)
AddEnemyBullet(Enemyship(x).x + Image width(Enemyship(x).imagenr)/2, Enemyship(x).y, Enemyship(x).speed, Enemyship(x).hitpoints, Enemyship(x).art)
Play sound Enemyart(Enemyship(x).art, 8)
Endif
Else
Inc Enemyship(x).y, 15
Endif
`wenn screen verlassen, löschen
If Enemyship(x).x < -Image width(Enemyart(Enemyship(x).art, 3)) Or Enemyship(x).x > Screen width() Or Enemyship(x).y < -100 Or Enemyship(x).y > Screen height()
Delete sprite Enemyship(x).spritenr
Array delete element Enemyship(), x
Endif
Next blah
`}
Return
Player_Action:
`{ - Spieleraktionen
`Bewegung
If Playership(0).spritenr <> 0
mmx = Mousex()
mmy = Mousey()
If mmx <> 0 Or mmy <> 0
Playership(0).x = Curvevalue(mmx, Playership(0).x, Playership(0).Speed)
Playership(0).y = Curvevalue(mmy, Playership(0).y, Playership(0).Speed)
Endif
`Schuss
If (Mouseclick() = 1 Or Scancode() = 57) And Timer() - lastshoot > Shootdelay : `space
lastshoot = Timer()
AddOwnBullet(Playership(0).x, Playership(0).y)
Play sound 10
Endif
Endif
`}
Return
Turn_Summary:
`{- Change Player Bulletposition
For x = 0 To Array count(Playerbullet())
If Playerbullet(x).x >0 And Playerbullet(x).y >0 And Playerbullet(x).x < Screenwidth And Playerbullet(x).y < Screenheight
Move sprite Playerbullet(x).spritenr, Playerbullet(x).speed
Playerbullet(x).x = Sprite x(Playerbullet(x).spritenr)
Playerbullet(x).y = Sprite y(Playerbullet(x).spritenr)
Else
Delete sprite Playerbullet(x).spritenr
Array delete element Playerbullet(), x
Endif
Next blah
`}
`{- Change Enemy Bulletposition
For x = 0 To Array count(EnemyBullet())
If EnemyBullet(x).x >0 And EnemyBullet(x).y >0 And EnemyBullet(x).x < Screenwidth And EnemyBullet(x).y < Screenheight
Move sprite EnemyBullet(x).spritenr, EnemyBullet(x).speed
EnemyBullet(x).x = Sprite x(EnemyBullet(x).spritenr)
EnemyBullet(x).y = Sprite y(EnemyBullet(x).spritenr)
Else
Delete sprite EnemyBullet(x).spritenr
Array delete element EnemyBullet(), x
Endif
Next blah
`}
`{- Change Position Player
If Playership(0).spritenr <> 0
Sprite PlayerShipSprite, Playership(0).x, Playership(0).y, Playership(0).imagenr
Endif
` Show Shield
If shieldpoints <> altshieldpoints
altshieldpoints = shieldpoints
If shieldpoints > 0
DrawShieldImage(TRUE)
Else
If shields > 0
Dec shields
Inc shieldpoints, 50
DrawShieldImage(TRUE)
Else
DrawShieldImage(FALSE)
Endif
Endif
Endif
`}
`{- Change Position Enemy
For x = 0 To Array count(Enemyship())
Sprite Enemyship(x).spritenr, Enemyship(x).x, Enemyship(x).y, Enemyship(x).imagenr
Next blah
`}
`{- Check Hit Player
`Collision
If Playership(0).spritenr <> 0
t = Sprite collision(PlayerShipSprite, 0)
coll = t
If t >= 500 And t <= 500 + MaxEnemyBullet
`search the hit-bullet
h = Array count(EnemyBullet())
i = -1
Repeat
Inc i
Until i = h Or EnemyBullet(i).spritenr = t
`use a shield
If shieldpoints > 0
Inc EnemyBullet(i).hitpoints, level
Repeat
If shieldpoints > EnemyBullet(i).hitpoints
Dec shieldpoints, EnemyBullet(i).hitpoints
EnemyBullet(i).hitpoints = 0
Else
Dec EnemyBullet(i).hitpoints, shieldpoints
shieldpoints = 0
Endif
If shields > 0 And shieldpoints = 0
shieldpoints = 50
Dec shields
Endif
Until (shields = 0 And shieldpoints = 0) Or EnemyBullet(i).hitpoints = 0
Play sound 16
Endif
Dec Playership(0).hitpoints, EnemyBullet(i).hitpoints
`delete the bullet
Delete sprite EnemyBullet(i).spritenr
Array delete element EnemyBullet(), i
Play sound 11
ShowStatistics()
Else
`{ Check Collision with EnemySchiff
If t >= 200 And t <= 200 + MaxEnemy
`suche den gegner
h = Array count(Enemyship())
i = -1
Repeat
Inc i
Until i = h Or Enemyship(i).spritenr = t
`subtract remaining points
Dec Playership(0).hitpoints, Enemyship(i).hitpoints/5
Delete sprite Enemyship(i).spritenr
Inc playerpoints, Enemyart(Enemyship(i).art, 10)
AddExplosion(Enemyship(i).x, Enemyship(i).y, 1, Enemyship(i).art)
Array delete element Enemyship(), i
Play sound 15
ShowStatistics()
Endif
`}
Endif
`{- Check destruction player
If Playership(0).hitpoints <= 0
`Explosion
Delete sprite PlayerShipSprite
Playership(0).spritenr = 0
shipcounter = levelcount : `level end
Play sound 18
`Explosion
AddExplosion(Playership(0).x, Playership(0).y, 3, 6)
ShowStatistics()
Failed = TRUE
Endif
`}
Endif
`}
`{- Check Hit Enemy
For x = 0 To Array count(Enemyship())
If Enemyship(x).spritenr <> 0
`Collision
t = Sprite collision(Enemyship(x).spritenr, 0)
coll = t
If t <> 0
If t > 1000 And t < 2000: ` Playerbullet
`search bullet
h = Array count(Playerbullet())
i = -1
Repeat
Inc i
Until i = h Or Playerbullet(i).spritenr = t
Dec Enemyship(x).hitpoints, Playerbullet(i).hitpoints
`Delte bullet
Delete sprite Playerbullet(i).spritenr
Array delete element Playerbullet(), i
Play sound 13
`Check Destruction Enemy
If Enemyship(x).hitpoints <= 0
`Explosion
AddExplosion(Enemyship(x).x, Enemyship(x).y, 1, Enemyship(x).art)
If Enemyship(x).art = 7 : `poopup
MakeNewPopUp(Enemyship(x).x, Enemyship(x).y, Enemyship(x).spec)
Endif
Delete sprite Enemyship(x).spritenr
Inc playerpoints, Enemyart(Enemyship(x).art, 10)
Array delete element Enemyship(), x
Play sound 12
Endif
Endif
Endif
Endif
Next blah
`}
`{- Explosions
For x = 0 To Array count(explosions())
If explosions(x).spritenr <> 0
If explosions(x).frame > 14
Delete sprite explosions(x).spritenr
Array delete element explosions(), x
Else
`change image
If explosions(x).cnt = ExploDelay
explosions(x).frame = explosions(x).frame + 1
Set sprite image explosions(x).spritenr, explosions(x).imagenr + explosions(x).frame
` If explosions(x).frame <=4 : `explosion expand
` Scale sprite explosions(x).spritenr, 100 + (explosions(x).frame*10)
` Endif
explosions(x).cnt = 0
Else
explosions(x).cnt = explosions(x).cnt + 1
Endif
Endif
Endif
Next blah
`}
`{- Popups
For x = 0 To Array count(PopUps())
If PopUps(x).spritenr <> 0
If PopUps(x).x >0 And PopUps(x).y >0 And PopUps(x).x < Screenwidth And PopUps(x).y < Screenheight
Move sprite PopUps(x).spritenr, PopUpSpeed
PopUps(x).x = Sprite x(PopUps(x).spritenr)
PopUps(x).y = Sprite y(PopUps(x).spritenr)
Else
Delete sprite PopUps(x).spritenr
Array delete element PopUps(), x
Endif
Endif
Next blah
`}
`{- Check Collision with Popup
If Playership(0).spritenr <> 0
For x = 0 To Array count(PopUps())
If Sprite collision(PopUps(x).spritenr, PlayerShipSprite) = 1
Play sound 14
`Ändere Popup
AddPopUp(PopUps(x).art)
Delete sprite PopUps(x).spritenr
Array delete element PopUps(), x
Endif
Next blah
Endif
`}
`{- New Live
` If playerpoints > 20000
` If playerpoints - altpoints > 20000
` Inc playerlifes
` Play sound 17
` Inc altpoints, 20000
` Endif
` Else
` If playerpoints > 15000
` Inc playerlifes
` Play sound 17
` Else
` If playerpoints > 10000
` Inc playerlifes
` Play sound 17
` Else
` If playerpoints > 6000
` Inc playerlifes
` Play sound 17
` Else
` If playerpoints > 2500
` Inc playerlifes
` Play sound 17
` Else
` If playerpoints > 1000
` Inc playerlifes
` Play sound 17
` Else
` If playerpoints > 10
` Inc playerlifes
` Play sound 17
` Endif
` Endif
` Endif
` Endif
` Endif
` Endif
` Endif
`}
`{- Leveldata
If levelstart = 1
`show level info
ShowMessage(gametext(5) + " " + Str$(level))
If Array count(EnemyBullet()) = -1 And Array count(Playerbullet()) = -1 And Array count(explosions()) = -1 And Array count(Enemyship()) = -1
Select level
Case 1
Restore Level1
Endcase
Case 2
Restore Level2
Endcase
Case 3
Restore Level3
Endcase
Case 4
Restore Level4
Endcase
Case 5
Restore Level5
Endcase
Case 6
Restore Level6
Endcase
Case 7
Restore Level7
Endcase
Case 8
Restore Level8
Endcase
Endselect
Read levelcount
shipcounter = 0
Endif
levelstart = 0
Failed = FALSE
Endif
If Timer() - gettime > leveldelay
gettime = Timer()
If shipcounter < levelcount
If Rnd(100) > 30
Read neuschiff
Read spec
Read leveldelay
MakeNewEnemy(Rnd(Screen width()-200)+ 100, -Rnd(60), neuschiff, spec)
Inc shipcounter
Endif
Else
If Array count(EnemyBullet()) = -1 And Array count(Playerbullet()) = -1 And Array count(explosions()) = -1 And Array count(Enemyship()) = -1
levelende = 1
levelcount = 0
leveldelay = 0
levelstart = 1
If level < MaxLevel
If Failed = FALSE
Inc level
Inc playerlifes
Endif
ShowShipStats()
Else
ShowMessage(gametext(6))
Playership(0).spritenr = 0
spielende = 1
Endif
Endif
Endif
Endif
`}
Return
Query_New_Game:
`{ - abfrage_neues_spiel
Gosub New_Game
`}
Return
Extro_screen:
`{
ShowMessage(gametext(8))
`}
Return
Highscore:
`{ - Highscoreliste
`load encrypted Highscorelist
If File exist(scname$)
Open to read 1, scname$
For x = 1 To hslitems
Read file 1, a
hs(x).pts = Sqrt(a)
hs(x).name = ""
Read file 1, it
For y = 1 To it
Read file 1, t
hs(x).name = hs(x).name + Chr$(t / hs(x).pts)
Next y
Next x
Close file 1
Else
`make new highscorelist
Restore hscore
For x = 1 To hslitems
hs(x).pts = 10000 - x * 500
Read hs(x).name
Next x
Endif
`here starts the High-score list
h = 0
x = 0
Repeat
Inc x
If hs(x).pts < points Then h = x
Until x = hslitems Or h <> 0
`delete last entry
If h <> 0
For x = hslitems To h+1 Step -1
hs(x).pts = hs(x-1).pts
hs(x).name = hs(x-1).name
Next x
Endif
`set new entry
hs(h).pts = points
hs(h).name = ""
`show highscorelist and input your name
Clear entry buffer
Repeat
Cls
`Center Text Screen width() >> 1, 70, "Points: " + Str$(points)
`frame rate independent input
If Entry$() <> ""
For x = 1 To Len(Entry$())
a$ = Right$(Left$(Entry$(), x), 1)
If Asc(a$) = 8 : `backspace
hs(h).name = Left$(hs(h).name, Len(hs(h).name) - 1)
Else
If Len(hs(h).name) < maxname And Asc(a$) > 31 And Asc(a$) < 123
hs(h).name = hs(h).name + a$
Endif
Endif
Next x
Clear entry buffer
Endif
Set text size 30
Center text Screen width() >> 1, 30, "HIGH-SCORE"
For x = 1 To hslitems
Ink Rgb(255,255,255), 0
If x = h : `actual player
Ink Rgb(255,0,0), 0
Text 300, 100 + x * 40, Str$(x) + "."
Text 450, 100 + x * 40, hs(x).name + "_"
Text 650, 100 + x * 40, Str$(hs(x).pts)
Else
Text 300, 100 + x * 40, Str$(x) + "."
Text 450, 100 + x * 40, hs(x).name
Text 650, 100 + x * 40, Str$(hs(x).pts)
Endif
Next x
Sync
Until Returnkey()
If File exist(scname$) Then Delete file scname$
Open to write 1, scname$
For x = 1 To hslitems
Write file 1, hs(x).pts^2
Write file 1, Len(hs(x).name)
For y = 1 To Len(hs(x).name)
Write file 1, Asc(Right$(Left$(hs(x).name, y), 1)) * hs(x).pts
Next y
Next x
Close file 1
`}
Return
`Data for Highscore
hscore:
Data "Stefan", "Doro", "Johannah", "Elias", "Daniel", "Daniel", "Aaron", "Giacomo", "Louis", "Joan"
Data "empty", "empty", "empty", "empty", "empty", "empty", "empty", "empty", "empty", "empty"
`}
`{- Funktions
`{- - Funktions for Filename handling
Function getfilepart(path$)
Repeat
pos = Instr(path$, "\", start + 1)
Inc start, pos
Until pos = 0
If start
file$ = Mid$(path$, start+1, Len(path$))
Endif
Endfunction file$
Function getpathpart(path$)
Repeat
pos = Instr(path$, "\", start + 1)
Inc start, pos
Until pos = 0
If start
file$ = Left$(path$, start)
Endif
Endfunction file$
Function getextensionpart(path$)
Repeat
pos = Instr(path$, ".", start + 1)
Inc start, pos
Until pos = 0
If start
file$ = Mid$(path$, start+1, Len(path$))
Endif
Endfunction file$
`}
`{- - Systemfunktions
Function Mousezone(x1,y1,x2,y2)
moved=0
If Mousex() > x1 And Mousex() < x2
If Mousey() > y1 And Mousey() < y2
moved = Mouseclick() + 1
Endif
Endif
Endfunction moved
Function Mod(a, b)
back = a - Int(a/b) * b
Endfunction back
`}
`{- - Game funktions
`{- - Internal
Function loadlanguagefile()
If File exist(Langfilename$)
Open to read 1, Langfilename$
For x = 1 To MaxGameText
Read string 1, gametext(x-1)
Next blah
Close file 1
Else
Restore commonlang
For x = 1 To MaxGameText
Read gametext(x-1)
Next blah
Endif
Endfunction
Function showoption(itemnumber)
Cli 2, Rgb(128, 128, 128)
Ink WEISS, SCHWARZ
Set text size 70
Image center text 2, Screen width()>>1, Screen height()/10, Gamename$
Set text size WahlTextSize
Set text to bold
sx = Screen width()>>1
sy = Screen height()>>2
For x = 1 To MaxWahlText
If x = itemnumber
Ink ROT, SCHWARZ
Else
Ink WEISS, SCHWARZ
Endif
Image center text 2, sx, sy + 2 * x * WahlTextSize, gametext(x-1)
Next blah
Paste image 2, 0,0
Sync
Endfunction
`}
`{- - Game specific
Function AddEnemyBullet(x, y, speed, hit, art)
If Array count(EnemyBullet()) < MaxEnemyBullet
Array insert at bottom EnemyBullet()
EnemyBullet().x = x
EnemyBullet().y = y
EnemyBullet().speed = Enemyart(art, 5)
EnemyBullet().hitpoints = Enemyart(art, 6)
EnemyBullet().imagenr = Enemyart(art, 7)
`bullet direction
EnemyBullet().zx = x
EnemyBullet().zy = Screen height()
t = 500
Repeat
Inc t
Until Sprite exist(t) = 0
EnemyBullet().spritenr = t
Sprite t, x, y, EnemyBullet().imagenr
Rotate sprite t, 180
Set sprite priority t, 1
Set sprite t, 0, 1
Endif
Endfunction
Function AddOwnBullet(x, y)
`MakePlayerBullet(x, y, 0)
Select weaponanzahl
Case 1
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2, y, 0)
Endcase
Case 2
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 - 30, y+20, 0)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 + 30, y+20, 0)
Endcase
Case 3
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2, y, 0)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 - 30, y+20, -45)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 + 30, y+20, 45)
Endcase
Case 4
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 - 30, y+20, 0)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 + 30, y+20, 0)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 - 30, y+20, -60)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 + 30, y+20, 60)
Endcase
Case 5
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2, y, 0)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 - 30, y+20, -30)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 + 30, y+20, 30)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 - 30, y+20, -60)
MakePlayerBullet(x + Image width(Playership(0).imagenr)/2 + 30, y+20, 60)
Endcase
Endselect
Endfunction
Function MakePlayerBullet(x, y, rotate)
If Array count(Playerbullet()) < MaxOwnBullet
Array insert at bottom Playerbullet()
Playerbullet().x = x
Playerbullet().y = y
Playerbullet().zx = x
Playerbullet().zy = 0
Playerbullet().speed = Playeraddons().speed
Playerbullet().hitpoints = Playeraddons().hitpoints
Playerbullet().imagenr = Playeraddons().imagenr
t = 1000
Repeat
Inc t
Until Sprite exist(t) = 0
Playerbullet().spritenr = t
Sprite t, x - Image width(Playeraddons().imagenr)/2, y, Playerbullet().imagenr
Set sprite priority t, 1
Rotate sprite t, rotate
Set sprite t, 0, 1
Endif
Endfunction
Function MakeNewEnemy(x, y, art, spec)
If Array count(Enemyship()) < MaxEnemy And Playership(0).spritenr <> 0
Array insert at bottom Enemyship()
Enemyship().x = x
Enemyship().y = y
Enemyship().zx = Enemyart(art, 0)
Enemyship().zy = Enemyart(art, 1)
Enemyship().speed = Enemyart(art, 4)
Enemyship().hitpoints = Enemyart(art, 2)
Enemyship().imagenr = Enemyart(art, 3)
Enemyship().spec = spec
Enemyship().art = art
t = 200
Repeat
Inc t
Until Sprite exist(t) = 0
Enemyship().spritenr = t
Sprite t, x, y, Enemyship().imagenr
Set sprite priority t, 1
Set sprite t, 0, 1
Else
Message "no enemys " + Str$(Array count(Enemyship())), Str$(Playership(0).spritenr)
Endif
Endfunction
Function MakeNewPlayer(x, y, hitpoints)
Playership(0).x = x
Playership(0).y = y
Playership(0).hitpoints = hitpoints
Playership(0).speed = 20 : `new ship speed 20
Playership().spritenr = 1 : `hip exist
Sprite PlayerShipSprite, Playership(0).x, Playership(0).y, Playership(0).Imagenr
Set sprite priority PlayerShipSprite, 1
Set sprite PlayerShipSprite, 0, 1
ShowStatistics()
Endfunction
Function AddExplosion(x, y, intens, art)
If Array count(explosions()) < MaxEnemy
Array insert at bottom explosions()
explosions().x = x
explosions().y = y
explosions().intens = intens
explosions().art = Enemyart(art, 11)
explosions().frame = 0
explosions().imagenr = 400 + (explosions().art-1) * 20
explosions().cnt = 0 : `delay
t = 2000
Repeat
Inc t
Until Sprite exist(t) = 0
explosions().spritenr = t
Sprite t, x, y, explosions().imagenr: `Frame 1
Set sprite priority t, 1
Set sprite t, 0, 1
Endif
Endfunction
Function MakeNewPopUp(x, y, art)
If Array count(PopUps()) < MaxEnemy
Array insert at bottom PopUps()
PopUps().x = x
PopUps().y = y
PopUps().art = art
t = 3000
Repeat
Inc t
Until Sprite exist(t) = 0
PopUps().spritenr = t
Sprite t, x, y, 149
Set sprite priority t, 1
Rotate sprite t, 180
Set sprite t, 0, 1
Endif
Endfunction
Function AddPopUp(art)
If art <= 10 : `Standard Popups
If Array count(Playeraddons()) < MaxPlayerAddOns
`is Popup existing
For t = 0 To Array count(Playeraddons())
If Playeraddons().art = art
t = MaxPlayerAddOns + 100
Endif
Next blah
If t <> MaxPlayerAddOns + 100
Array insert at bottom Playeraddons()
Playeraddons().art = art
Playeraddons().anz = popart(art, 1)
Playeraddons().speed = popart(art, 2)
Playeraddons().hitpoints = popart(art, 3)
Playeraddons().imagenr = popart(art, 4)
Array index to bottom Playeraddons()
Else : `popup is
Inc playerpoints, 500
Endif
Endif
Else
If art = 11 : `Shield
If shieldpoints = 0
Inc shieldpoints, 50
Else
Inc shields
Endif
ShowStatistics()
ShowShipStats()
Else
If art = 12 : `inc weapon
If weaponanzahl < 5
Inc weaponanzahl
Endif
Else : `13 - speed enhance
If Playership(0).speed > 10
Playership(0).speed = Playership(0).speed - 2
Else
Inc playerpoints, 500
Endif
ShowShipStats()
Endif
Endif
Endif
Endfunction
Function DrawShieldImage(mode)
If Image exist(17) = 1
Delete image 17
Endif
If mode = TRUE
If Make image(17, 90, 90) = -1
Exitfunction
Endif
t = 44
For x = 0 To shieldpoints Step 10
Fgc Rgb(000, 255 - x * 3, 000)
Image circle 17, 45, 45, t
Dec t
Next blah
Paste image image 10, 17, (Image width(17) - Image width(10)) / 2, (Image height(17) - Image height(10)) / 2, 0
Else
Clone image 10, 17
Endif
Sprite PlayerShipSprite, Playership(0).x, Playership(0).y, Playership(0).imagenr
Endfunction
Function ShowStatistics()
If Image exist(4) = 0
t = Make image(4, 10, 750)
Else
Cli 4, 0
Endif
If Image exist(5) = 0
t = Make image(5, 10, 750)
Else
Cli 5, 0
Endif
`{ Hitpoints
If Image exist(4) = 1
Ink WEISS, WEISS
Image frame 4, 0, 0, 9, 749
If Playership(0).hitpoints > 60
Ink GRUEN, 0
Else
If Playership(0).hitpoints > 40
Ink GELB, 0
Else
If Playership(0).hitpoints > 20
Ink ORANGE, 0
Else
Ink ROT, 0
Endif
Endif
Endif
Image box 4, 1, 749, 8, 751 - Playership(0).hitpoints * 10
Endif
`}
`{ Shieldpoints
If Image exist(5) = 1
Ink WEISS, WEISS
Image frame 5, 0, 0, 9, 749
If shieldpoints > 40
Ink GRUEN, 0
Else
If shieldpoints > 25
Ink GELB, 0
Else
If shieldpoints > 10
Ink ORANGE, 0
Else
Ink ROT, 0
Endif
Endif
Endif
Image box 5, 1, 749, 8, 751 - shieldpoints * 15
Endif
`}
Sprite 5, 0, 10, 5
Sprite 4, Screen width() - 11, 10, 4
Set sprite priority 4, 3
Set sprite priority 5, 3
Endfunction
Function ShowShipStats()
If Image exist(6) = 0 : `Shields
t = Make image(6, 80, 12)
Else
Cli 6, 0
Endif
If Image exist(7) = 0 : `Lives
t = Make image(7, 80, 12)
Else
Cli 7, 0
Endif
If Image exist(8) = 0 : `Speed
t = Make image(8, 102, 12)
Else
Cli 8, 0
Endif
`{ Shields
If Image exist(6) = 1
Ink WEISS, WEISS
Image frame 6, 0, 0, 79, 11
dist = 78 / playerlifes
For x = 0 To playerlifes-1
Paste image image 18, 6, x * dist, 1, 0
Next blah
Endif
`}
`{ Player lifes
If Image exist(7) = 1
Ink WEISS, WEISS
Image frame 7, 0, 0, 79, 11
dist = 78 / shields
For x = 0 To shields-1
Paste image image 19, 7, x * dist, 1, 0
Next blah
Endif
`}
`{ Ship speed
If Image exist(8) = 1
Ink WEISS, WEISS
Image frame 8, 0, 0, 99, 11
If Playership(0).speed > 18
Ink ROT, 0
Else
If Playership(0).speed > 14
Ink ORANGE, 0
Else
If Playership(0).speed > 12
Ink GELB, 0
Else
Ink GRUEN, 0
Endif
Endif
Endif
Image box 8, 1, 1, 150 - Playership(0).speed * 5, 10
Endif
`}
Sprite 6, 20, 0, 6
Sprite 7, 120, 0, 7
Sprite 8, 800, 0, 8
Set sprite priority 6, 3
Set sprite priority 7, 3
Set sprite priority 8, 3
Endfunction
Function ShowMessage(Text$)
Cls
Set text size 50
If Make image(9, 400, 250) <> -1
Image box 9, 0, 0, 399, 125, 0x808080, 0x000080, 0x808080, 0x000080
Image box 9, 0, 126, 399, 250, 0x000080, 0x808080, 0x000080, 0x808080
Ink WEISS, WEISS
Image center text 9, Image width(9)/2, Image height(9)/2, text$
Sprite 9, Screen width()/2 - Image width(9)/2, Screen height()/2 - Image height(9)/2, 9
Set sprite priority 9, 10
Repeat
Sync
Wait 100
Until Scancode() <> 0 Or Mouseclick() <> 0
Delete sprite 9
Delete image 9
Endif
Endfunction
`}
`}
`}
`{DATA SECTION
`{ Language common settings - 'MaxGameText'
commonlang:
Data "New Game"
Data "Info"
Data "Exit"
Data "Options"
Data "5"
Data "LEVEL "
Data "GAME OVER"
Data ""
Data "GOOD BYE"
Data "10"
Data "a"
Data "s"
Data "d"
Data "f"
Data "g"
Data "h"
Data "j"
Data "k"
Data "l"
Data "ö"
`}
`- LEVELDATEN
`{ Level 1
`Format Leveldata
` Shipnumber
` Special
` delay
Level1:
Data 72
Data 1, 0, 2000, 2, 0, 1000, 3, 0, 500, 2, 0, 500, 3, 0, 2000, 3, 0, 700
Data 1, 0, 2200, 7, 1, 110, 1, 0, 2100, 1, 0, 000, 4, 0, 000, 2, 0, 000
Data 1, 0, 1500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 1, 0, 1500
Data 1, 0, 1500, 7,11, 500, 1, 0, 2500, 1, 0, 500, 1, 0, 500, 1, 0, 500
Data 1, 0, 200, 2, 0, 500, 2, 0, 300, 1, 0, 2000, 5, 0, 900, 1, 0, 500
Data 2, 0, 300, 1, 0, 500, 1, 0, 800, 2, 0, 000, 1, 0, 500, 2, 0, 900
Data 1, 0, 2000, 1, 0, 500, 2, 0, 500, 1, 0, 000, 2, 0, 200, 1, 0, 1500
Data 2, 0, 000, 1, 0, 500, 1, 0, 500, 2, 0, 000, 1, 0, 200, 1, 0, 1500
Data 1, 0, 900, 2, 0, 500, 1, 0, 1500, 2, 0, 000, 3, 0, 200, 2, 0, 500
Data 2, 0, 200, 1, 0, 2500, 7,13, 500, 2, 0, 500, 1, 0, 2200, 3, 0, 500
Data 1, 0, 000, 1, 0, 500, 1, 0, 500, 1, 0, 000, 4, 0, 200, 1, 0, 1500
Data 3, 0, 200, 1, 0, 100, 1, 0, 300, 1, 0, 200, 5, 0, 3000, 6, 0, 100
`}
`{ Level 2
Level2:
Data 96
Data 2, 0, 2000, 2, 0, 1000, 2, 0, 500, 2, 0, 500, 3, 0, 2000, 3, 0, 300
Data 2, 0, 2200, 7, 2, 110, 1, 0, 2100, 1, 0, 000, 4, 0, 000, 2, 0, 000
Data 2, 0, 1500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 1, 0, 1500
Data 2, 0, 1500, 7, 2, 500, 1, 0, 1500, 1, 0, 500, 1, 0, 500, 1, 0, 500
Data 2, 0, 200, 2, 0, 500, 2, 0, 300, 2, 0, 2000, 5, 0, 900, 1, 0, 500
Data 2, 0, 300, 1, 0, 500, 1, 0, 800, 2, 0, 000, 1, 0, 500, 2, 0, 900
Data 1, 0, 900, 2, 0, 500, 1, 0, 1500, 2, 0, 000, 3, 0, 200, 2, 0, 500
Data 2, 0, 200, 1, 0, 2500, 7, 2, 500, 2, 0, 500, 2, 0, 2200, 3, 0, 500
Data 1, 0, 000, 1, 0, 500, 1, 0, 500, 2, 0, 000, 2, 0, 200, 1, 0, 1500
Data 2, 0, 900, 2, 0, 900, 2, 0, 1500, 1, 0, 000, 1, 0, 1500, 2, 0, 500
Data 4, 0, 3000, 1, 0, 500, 1, 0, 500, 1, 0, 700, 7,12, 100, 1, 0, 1300
Data 3, 0, 1000, 2, 0, 500, 1, 0, 500, 1, 0, 000, 2, 0, 200, 4, 0, 500
Data 3, 0, 000, 1, 0, 500, 1, 0, 500, 2, 0, 900, 1, 0, 200, 1, 0, 1500
Data 2, 0, 900, 2, 0, 900, 2, 0, 1500, 1, 0, 000, 1, 0, 1500, 2, 0, 500
Data 2, 0, 900, 2, 0, 900, 2, 0, 1500, 1, 0, 000, 1, 0, 1500, 2, 0, 500
Data 4, 0, 3000, 1, 0, 500, 1, 0, 500, 1, 0, 1100, 7,11, 100, 1, 0, 1300
`}
`{ Level 3
Level3:
Data 96
Data 3, 0, 500, 3, 0, 100, 3, 0, 500, 3, 0, 500, 7,11, 2000, 4, 0, 300
Data 2, 0, 2200, 7, 2, 110, 1, 0, 2100, 1, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 1500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 2, 0, 1500
Data 3, 0, 1500, 7,11, 500, 4, 0, 1000, 1, 0, 500, 1, 0, 500, 2, 0, 500
Data 4, 0, 200, 2, 0, 500, 3, 0, 300, 2, 0, 1600, 5, 0, 900, 2, 0, 500
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 2, 0, 000, 1, 0, 500, 2, 0, 900
Data 6, 0, 900, 2, 0, 500, 4, 0, 1500, 2, 0, 000, 3, 0, 200, 2, 0, 500
Data 6, 0, 200, 1, 0, 2000, 7, 3, 500, 2, 0, 500, 2, 0, 1500, 3, 0, 500
Data 1, 0, 000, 1, 0, 500, 2, 0, 500, 2, 0, 000, 2, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 3, 0, 1500, 1, 0, 000, 1, 0, 1000, 2, 0, 500
Data 4, 0, 2000, 1, 0, 100, 1, 0, 100, 1, 0, 100, 7, 2, 100, 2, 0, 100
Data 1, 0, 300, 2, 0, 500, 1, 0, 300, 1, 0, 000, 2, 0, 200, 4, 0, 500
Data 4, 0, 200, 2, 0, 500, 3, 0, 300, 2, 0, 1600, 5, 0, 900, 2, 0, 500
Data 3, 0, 000, 1, 0, 500, 2, 0, 500, 2, 0, 900, 1, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 2, 0, 1000, 1, 0, 000, 1, 0, 1500, 2, 0, 500
Data 4, 0, 2200, 1, 0, 500, 3, 0, 500, 1, 0, 1000, 7,13, 100, 2, 0, 1300
`}
`{ Level 4
Level4:
Data 192
Data 3, 0, 500, 3, 0, 100, 3, 0, 500, 3, 0, 500, 7,11, 2000, 4, 0, 300
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 3, 0, 000, 1, 0, 500, 2, 0, 900
Data 2, 0, 2200, 7, 2, 110, 6, 0, 2100, 1, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 1500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 2, 0, 1500
Data 3, 0, 1500, 7, 3, 500, 4, 0, 1000, 1, 0, 500, 1, 0, 500, 2, 0, 500
Data 4, 0, 200, 2, 0, 500, 6, 0, 300, 3, 0, 1600, 5, 0, 900, 2, 0, 500
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 3, 0, 000, 1, 0, 500, 2, 0, 900
Data 6, 0, 900, 2, 0, 500, 4, 0, 1500, 3, 0, 000, 3, 0, 200, 2, 0, 500
Data 6, 0, 200, 1, 0, 2000, 7,12, 500, 3, 0, 500, 2, 0, 1500, 3, 0, 500
Data 1, 0, 000, 1, 0, 500, 2, 0, 500, 6, 0, 000, 2, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 3, 0, 1500, 6, 0, 000, 6, 0, 1000, 6, 0, 500
Data 4, 0, 2000, 1, 0, 100, 1, 0, 100, 6, 0, 100, 7, 1, 100, 2, 0, 100
Data 5, 0, 300, 5, 0, 500, 5, 0, 300, 5, 0, 000, 5, 0, 200, 5, 0, 500
Data 5, 0, 000, 5, 0, 500, 5, 0, 500, 2, 0, 900, 1, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 2, 0, 1000, 1, 0, 000, 1, 0, 1500, 2, 0, 500
Data 4, 0, 2200, 1, 0, 500, 3, 0, 500, 1, 0, 1000, 7,11, 100, 2, 0, 1300
Data 3, 0, 500, 3, 0, 100, 3, 0, 500, 3, 0, 500, 7, 4, 2000, 4, 0, 300
Data 2, 0, 2200, 7, 2, 110, 1, 0, 2100, 1, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 1500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 2, 0, 1500
Data 3, 0, 1500, 7,11, 500, 4, 0, 1000, 1, 0, 500, 1, 0, 500, 2, 0, 500
Data 4, 0, 200, 2, 0, 500, 3, 0, 300, 2, 0, 1600, 5, 0, 900, 2, 0, 500
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 2, 0, 000, 1, 0, 500, 2, 0, 900
Data 3, 0, 1500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 2, 0, 1500
Data 6, 0, 900, 2, 0, 500, 4, 0, 1500, 2, 0, 000, 3, 0, 200, 2, 0, 500
Data 6, 0, 200, 1, 0, 1000, 7, 4, 500, 2, 0, 500, 2, 0, 500, 3, 0, 500
Data 1, 0, 000, 1, 0, 500, 2, 0, 500, 2, 0, 000, 2, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 3, 0, 500, 1, 0, 000, 1, 0, 000, 2, 0, 500
Data 4, 0, 1000, 4, 0, 100, 1, 0, 100, 1, 0, 100, 7,13, 100, 2, 0, 100
Data 1, 0, 300, 2, 0, 500, 1, 0, 300, 1, 0, 000, 2, 0, 200, 4, 0, 500
Data 3, 0, 000, 1, 0, 500, 4, 0, 500, 4, 0, 900, 1, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 2, 0, 1000, 1, 0, 000, 1, 0, 1500, 2, 0, 500
Data 4, 0, 2200, 1, 0, 500, 3, 0, 500, 1, 0, 1000, 7,13, 100, 2, 0, 1300
`}
`{ Level 5
Level5:
Data 192
Data 4, 0, 500, 3, 0, 100, 3, 0, 500, 3, 0, 500, 7,12, 1000, 4, 0, 300
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 3, 0, 000, 1, 0, 500, 2, 0, 900
Data 2, 0, 2200, 7, 2, 110, 6, 0, 2100, 1, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 1500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 2, 0, 1000
Data 4, 0, 1500, 7, 3, 500, 4, 0, 1000, 1, 0, 500, 1, 0, 500, 2, 0, 500
Data 4, 0, 200, 2, 0, 500, 6, 0, 300, 3, 0, 1600, 5, 0, 900, 2, 0, 500
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 3, 0, 000, 1, 0, 500, 2, 0, 900
Data 6, 0, 900, 2, 0, 500, 4, 0, 1000, 3, 0, 000, 3, 0, 200, 2, 0, 500
Data 6, 0, 200, 1, 0, 1000, 6, 0, 500, 3, 0, 500, 2, 0, 1000, 3, 0, 500
Data 1, 0, 000, 1, 0, 500, 2, 0, 500, 6, 0, 000, 2, 0, 200, 2, 0, 1000
Data 2, 0, 900, 2, 0, 900, 3, 0, 1000, 6, 0, 000, 6, 0, 1000, 6, 0, 500
Data 4, 0, 1000, 1, 0, 100, 4, 0, 100, 6, 0, 100, 7, 1, 100, 2, 0, 100
Data 5, 0, 300, 5, 0, 500, 5, 0, 300, 5, 0, 000, 5, 0, 200, 5, 0, 500
Data 5, 0, 000, 5, 0, 500, 5, 0, 500, 2, 0, 900, 1, 0, 200, 2, 0, 1000
Data 2, 0, 900, 2, 0, 900, 2, 0, 1000, 4, 0, 000, 1, 0, 1000, 2, 0, 500
Data 4, 0, 1200, 1, 0, 500, 3, 0, 500, 4, 0, 1000, 7,11, 100, 2, 0, 1300
Data 3, 0, 500, 3, 0, 100, 3, 0, 500, 4, 0, 500, 7, 4, 1000, 4, 0, 300
Data 2, 0, 1200, 7, 5, 110, 4, 0, 1100, 4, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 1100, 1, 0, 200, 4, 0, 400, 4, 0, 800, 3, 0, 200, 2, 0, 1500
Data 3, 0, 1100, 7,11, 500, 4, 0, 1000, 4, 0, 500, 3, 0, 500, 5, 0, 500
Data 4, 0, 200, 2, 0, 500, 3, 0, 300, 4, 0, 1600, 5, 0, 900, 5, 0, 500
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 4, 0, 000, 1, 0, 500, 2, 0, 900
Data 3, 0, 1500, 1, 0, 200, 4, 0, 400, 4, 0, 800, 3, 0, 200, 2, 0, 1000
Data 6, 0, 900, 2, 0, 500, 4, 0, 1500, 4, 0, 000, 3, 0, 200, 2, 0, 500
Data 6, 0, 200, 1, 0, 1000, 7, 4, 500, 4, 0, 500, 2, 0, 500, 5, 0, 500
Data 1, 0, 000, 1, 0, 500, 2, 0, 500, 4, 0, 000, 2, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 3, 0, 500, 4, 0, 000, 3, 0, 000, 2, 0, 500
Data 4, 0, 1000, 4, 0, 100, 4, 0, 100, 4, 0, 100, 7,13, 100, 2, 0, 100
Data 1, 0, 300, 2, 0, 500, 4, 0, 300, 4, 0, 000, 2, 0, 200, 4, 0, 500
Data 3, 0, 000, 1, 0, 500, 4, 0, 500, 4, 0, 900, 3, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 2, 0, 1000, 4, 0, 000, 3, 0, 1500, 2, 0, 500
Data 4, 0, 1200, 1, 0, 500, 3, 0, 500, 4, 0, 1000, 7,13, 100, 2, 0, 1300
`}
`{ Level 6
Level6:
Data 192
Data 4, 0, 500, 3, 0, 100, 3, 0, 500, 3, 0, 500, 6, 0, 000, 4, 0, 300
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 3, 0, 000, 1, 0, 500, 2, 0, 900
Data 2, 0, 1200, 7, 2, 110, 6, 0, 2100, 1, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 2, 0, 1000
Data 4, 0, 500, 7, 3, 500, 4, 0, 1000, 1, 0, 500, 7, 6, 500, 2, 0, 500
Data 4, 0, 200, 2, 0, 500, 6, 0, 300, 3, 0, 1000, 5, 0, 900, 2, 0, 500
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 3, 0, 000, 1, 0, 500, 2, 0, 900
Data 6, 0, 900, 2, 0, 500, 4, 0, 1000, 3, 0, 000, 3, 0, 200, 2, 0, 500
Data 6, 0, 200, 1, 0, 1000, 6, 0, 500, 7, 6, 500, 2, 0, 1000, 3, 0, 500
Data 1, 0, 000, 1, 0, 500, 2, 0, 500, 6, 0, 000, 2, 0, 200, 2, 0, 1000
Data 2, 0, 900, 2, 0, 900, 3, 0, 1000, 6, 0, 000, 6, 0, 1000, 6, 0, 500
Data 4, 0, 000, 1, 0, 100, 4, 0, 100, 6, 0, 100, 7, 1, 100, 2, 0, 100
Data 5, 0, 300, 5, 0, 500, 5, 0, 300, 5, 0, 000, 5, 0, 200, 5, 0, 500
Data 5, 0, 000, 5, 0, 500, 5, 0, 500, 2, 0, 900, 1, 0, 200, 2, 0, 1000
Data 2, 0, 900, 2, 0, 900, 2, 0, 1000, 4, 0, 000, 1, 0, 000, 2, 0, 500
Data 4, 0, 1200, 1, 0, 500, 3, 0, 500, 7,12, 1000, 7,11, 100, 2, 0, 1000
Data 3, 0, 500, 3, 0, 100, 3, 0, 500, 4, 0, 500, 7, 4, 1000, 4, 0, 300
Data 2, 0, 1200, 7, 2, 110, 4, 0, 1100, 4, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 1100, 1, 0, 200, 4, 0, 400, 4, 0, 800, 3, 0, 200, 2, 0, 1000
Data 3, 0, 1100, 7,11, 500, 4, 0, 1000, 4, 0, 500, 3, 0, 500, 5, 0, 500
Data 4, 0, 200, 2, 0, 500, 5, 0, 300, 4, 0, 1600, 5, 0, 900, 5, 0, 500
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 4, 0, 000, 1, 0, 500, 2, 0, 900
Data 3, 0, 1500, 1, 0, 200, 4, 0, 400, 7, 7, 800, 3, 0, 200, 2, 0, 1000
Data 6, 0, 900, 2, 0, 500, 4, 0, 1000, 5, 0, 000, 3, 0, 200, 2, 0, 500
Data 6, 0, 200, 1, 0, 1000, 7, 4, 500, 5, 0, 500, 2, 0, 500, 5, 0, 500
Data 1, 0, 000, 1, 0, 500, 2, 0, 500, 4, 0, 000, 2, 0, 200, 6, 0, 1000
Data 2, 0, 900, 2, 0, 900, 3, 0, 500, 4, 0, 000, 3, 0, 000, 6, 0, 500
Data 4, 0, 1000, 4, 0, 100, 4, 0, 100, 4, 0, 100, 7,13, 100, 6, 0, 100
Data 5, 0, 300, 2, 0, 500, 4, 0, 300, 4, 0, 000, 2, 0, 200, 4, 0, 500
Data 3, 0, 000, 5, 0, 500, 4, 0, 500, 4, 0, 900, 3, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 2, 0, 1000, 4, 0, 000, 3, 0, 1500, 2, 0, 500
Data 4, 0, 1000, 5, 0, 500, 3, 0, 500, 4, 0, 000, 7,13, 100, 2, 0, 1300
`}
`{ Level 7
Level7:
Data 264
Data 4, 0, 500, 3, 0, 100, 3, 0, 500, 3, 0, 500, 6, 0, 000, 4, 0, 300
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 3, 0, 000, 1, 0, 500, 2, 0, 900
Data 2, 0, 1200, 7, 4, 110, 6, 0, 2100, 1, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 2, 0, 1000
Data 4, 0, 500, 7, 3, 500, 4, 0, 1000, 1, 0, 500, 7, 6, 500, 2, 0, 500
Data 4, 0, 200, 2, 0, 500, 6, 0, 300, 3, 0, 1000, 5, 0, 900, 2, 0, 500
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 3, 0, 000, 1, 0, 500, 2, 0, 900
Data 6, 0, 900, 2, 0, 500, 4, 0, 1000, 3, 0, 000, 3, 0, 200, 2, 0, 500
Data 6, 0, 200, 1, 0, 1000, 6, 0, 500, 7, 6, 500, 2, 0, 1000, 3, 0, 500
Data 1, 0, 000, 1, 0, 500, 2, 0, 500, 6, 0, 000, 2, 0, 200, 2, 0, 1000
Data 2, 0, 900, 2, 0, 900, 3, 0, 1000, 6, 0, 000, 6, 0, 1000, 6, 0, 500
Data 4, 0, 000, 1, 0, 100, 4, 0, 100, 6, 0, 100, 7, 1, 100, 2, 0, 100
Data 5, 0, 300, 5, 0, 500, 5, 0, 300, 5, 0, 000, 5, 0, 200, 5, 0, 500
Data 5, 0, 000, 5, 0, 500, 5, 0, 500, 2, 0, 900, 1, 0, 200, 2, 0, 1000
Data 2, 0, 900, 2, 0, 900, 2, 0, 1000, 4, 0, 000, 1, 0, 000, 2, 0, 500
Data 4, 0, 1200, 1, 0, 500, 3, 0, 500, 7,12, 1000, 7,11, 100, 2, 0, 1000
Data 3, 0, 500, 3, 0, 100, 3, 0, 500, 4, 0, 500, 7, 4, 1000, 4, 0, 300
Data 2, 0, 1200, 7, 2, 110, 4, 0, 1100, 4, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 1100, 1, 0, 200, 4, 0, 400, 4, 0, 800, 3, 0, 200, 2, 0, 1000
Data 3, 0, 1100, 7,11, 500, 4, 0, 1000, 4, 0, 500, 3, 0, 500, 5, 0, 500
Data 4, 0, 200, 2, 0, 500, 5, 0, 300, 4, 0, 1600, 5, 0, 900, 5, 0, 500
Data 6, 0, 300, 1, 0, 500, 3, 0, 800, 4, 0, 000, 1, 0, 500, 2, 0, 900
Data 3, 0, 1500, 1, 0, 200, 4, 0, 400, 7, 7, 800, 3, 0, 200, 2, 0, 1000
Data 6, 0, 900, 2, 0, 500, 4, 0, 1000, 5, 0, 000, 3, 0, 200, 2, 0, 500
Data 6, 0, 200, 1, 0, 1000, 7, 4, 500, 5, 0, 500, 2, 0, 500, 5, 0, 500
Data 1, 0, 000, 1, 0, 500, 2, 0, 500, 4, 0, 000, 2, 0, 200, 6, 0, 1000
Data 2, 0, 900, 2, 0, 900, 3, 0, 500, 4, 0, 000, 3, 0, 000, 6, 0, 500
Data 4, 0, 1000, 4, 0, 100, 4, 0, 100, 4, 0, 100, 7,13, 100, 6, 0, 100
Data 5, 0, 300, 2, 0, 500, 4, 0, 300, 4, 0, 000, 2, 0, 200, 4, 0, 500
Data 3, 0, 000, 5, 0, 500, 4, 0, 500, 4, 0, 900, 3, 0, 200, 2, 0, 1500
Data 2, 0, 900, 2, 0, 900, 2, 0, 1000, 4, 0, 000, 3, 0, 1500, 2, 0, 500
Data 4, 0, 1000, 5, 0, 500, 3, 0, 500, 4, 0, 000, 7,13, 100, 2, 0, 1300
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 1, 0, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 1, 0, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 1, 0, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 1, 0, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 1, 0, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 1, 0, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 1, 0, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 6, 0, 200, 1, 0, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 7, 8, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 1, 0, 000, 5, 0, 200, 3, 0, 200
Data 1, 0, 000, 3, 0, 200, 2, 0, 200, 1, 0, 000, 4, 0, 200, 3, 0, 200
Data 1, 0, 000, 6, 0, 200, 6, 0, 200, 6, 0, 000, 6, 0, 200, 6, 0, 200
`}
`{ Level 8
Level8:
Data 96
Data 3, 0, 500, 3, 0, 100, 3, 0, 500, 3, 0, 500, 7,11, 000, 4, 0, 300
Data 2, 0, 200, 7, 2, 110, 1, 0, 100, 1, 0, 000, 4, 0, 000, 4, 0, 000
Data 3, 0, 500, 1, 0, 200, 1, 0, 400, 3, 0, 800, 1, 0, 200, 2, 0, 500
Data 3, 0, 500, 7,11, 500, 4, 0, 000, 1, 0, 500, 1, 0, 500, 5, 0, 500
Data 4, 0, 200, 2, 0, 500, 3, 0, 300, 2, 0, 600, 5, 0, 900, 5, 0, 500
Data 6, 0, 300, 3, 0, 500, 3, 0, 800, 2, 0, 000, 1, 0, 500, 5, 0, 900
Data 6, 0, 900, 2, 0, 500, 4, 0, 500, 2, 0, 000, 3, 0, 200, 4, 0, 500
Data 6, 0, 200, 5, 0, 000, 7, 9, 500, 2, 0, 500, 2, 0, 500, 4, 0, 500
Data 1, 0, 000, 4, 0, 500, 2, 0, 500, 2, 0, 000, 2, 0, 200, 3, 0, 500
Data 2, 0, 900, 3, 0, 900, 3, 0, 500, 1, 0, 000, 1, 0, 000, 5, 0, 500
Data 4, 0, 000, 4, 0, 100, 4, 0, 100, 7,10, 100, 7, 2, 100, 3, 0, 100
Data 1, 0, 300, 3, 0, 500, 4, 0, 300, 1, 0, 000, 2, 0, 200, 6, 0, 500
Data 4, 0, 200, 3, 0, 500, 4, 0, 300, 2, 0, 600, 5, 0, 900, 2, 0, 500
Data 3, 0, 000, 4, 0, 500, 5, 0, 500, 2, 0, 900, 1, 0, 200, 6, 0, 500
Data 2, 0, 900, 6, 0, 900, 2, 0, 000, 1, 0, 000, 1, 0, 500, 6, 0, 500
Data 4, 0, 200, 1, 0, 500, 3, 0, 500, 1, 0, 000, 7,12, 100, 2, 0, 300
`}
`}
To code or not to be...
GALACTIC X - A brief overview - http://www.angelfire.com/space2/galactix also my IDE: jaPROe - the Image Enhance plugin and some snippets and tools -