Blitz BASIC

Blitz BASIC 'n programmeertaal gebaseer op die rekenaartaal BASIC. Dit was in ongeveer 1991 eers op die Commodore-Amiga beskikbaar.  Tans is Blitz BASIC vir diverse ander bedryfstelsels beskikbaar, o.m. vir Linux, Apple Mac en Windows. Blitz BASIC is hoofsaaklik geskik om spelletjies te ontwikkel.  Die taal het veel ingeboude funksies om met geluid en beelde om te gaan.

Geskiedenis 
Die eerste Blitz BASIC is in Nieu-Seeland deur Acid Software vir die Amiga ontwikkel. Alhoewel Blitz BASIC die algemeen bekende term is, is daar die afgelope paar jaar nuwe variasies van Blitz BASIC op die mark gekom:

 Blitz BASIC
 BlitzPlus
 Blitz3D
 BlitzMax

Blitz BASIC 
Blitz Basic is in Oktober 2000 op Windows beskikbaar gestel. Toe Blitz BASIC met enkele uitgawes van Engelse rekenaartydskrifte versprei is, het dit heelwat nuwelinge gelok.  Die oorspronklike Blitz BASIC word nie verder ontwikkel nie. Die advies is om die gratis verkrygbare BlitzMax te gebruik.

Blitz3D / BlitzPlus 
Dit is 'n versie van BlitzPlus met ekstra 3D-moontlikhede, en is 'n direkte mededinger van Dark Basic.  Blitz3D gebruik nog steeds DirectX7 en daardeur kan Blitz3D spelletjies op ou rekenaars gespeel word.

BlitzMax 
BlitzMax is die moderne en mees onlangse OOP-weergawe (objek-georiënteerde programmering) van Blitz BASIC. BlitzMax- ("BMX") programme wat in Windows ontwikkel word, is geskik om in Linux gespeel te word.  Die randvoorwaarde is dat die program eers op Linux oorgebou word. Dit behels bloot dat die kode in die IDE oopgemaak word, en dan in die Linux-weergawe van BlitzMax die "build"-knop te druk.

BMX is 'n modulêre taal. Mens kan self nuwe modules byprogrammeer om sodoende kodebiblioteke uit te bou, of biblioteke van eksterne mense in 'n program oorneem.

In Oktober 2007 het Blitz Research Ltd. 'n bygewerkte weergawe 1.26 beskikbaar gestel.  Tewens kan mens 'n toetsweergawe van BlitzMax aflaai om self programmeervaardighede te toets.

Blitz3D SDK 
Dit is die mees onlangse toevoeging waarmee Blitz3D vanuit die C#, C++-tale gebruik kan word. Op die oomblik is daar nog enkele tegniese probleme met die SDK. Verdere inligting is op die amptelike forum bekend (Blitz3D SDK Bug Reports).

Voorbeeld kode 
So skryf jy Hallo Wêreld in BlitzMax op die skerm:
 AppTitle$ = "Wikipedia voorbeeld"
 Graphics 800, 600, 0

 While(Not KeyHit(Key_ESCAPE))
   Cls();
   DrawText("Hallo Suid-Afrika", 5, 20);
   Flip();
 Wend

En hier een OOP-voorbeeld van Hallo Wêreld in BlitzMax:
'// hier begin jou kode.  Kopieer-en-plak na die BlitzMax IDE.
Global hallo1:HalloWorldClass = New HalloWorldClass;
hallo1.Main();

Type HalloWorldClass
 Method Main()
   AppTitle$ = "Wikipedia voorbeeld";
   Graphics(800, 600, 0);

   While(Not KeyHit(Key_ESCAPE))
     Cls();
     DrawText("Hallo Suid-Afrika", 5, 20);
     Flip();
   Wend
 End Method
EndType

Vervolgens 'n eenvoudige BlitzMax-voorbeeld waarmee die huidige tyd in binêre en desimale formaat vertoon word.

 AppTitle$ = "Binary Clock"
 Graphics 145,85, 0
 
 secondtimer = CreateTimer(2)
 Repeat
 
         Hour = Left(CurrentTime$(),2).ToInt()
         Minute = Mid(CurrentTime$(),4,2).ToInt()
         Second = Right(CurrentTime$(),2).ToInt()
         
         If Hour >= 12 Then PM =1
         If Hour > 12 Then Hour = Hour - 12
         If Hour = 0 Then Hour = 12
                 
         'should do this otherwise your PM dot would be 
         'Left up once the clock rolled past midnight!
         Cls 
 
         SetColor(0,255,0) 'make the text green For the PM part
         If PM  = 1 Then DrawText "PM",5,5
         'set the text colour back To white For the rest
         SetColor(255,255,255)
         
         For bit=0 To 5
                 xpos=20*(6-bit)
                 binaryMask=2^bit
                 'do hours
                 If (bit<4)
                         If (hour And binaryMask)
                                 DrawText "1",xpos,5
                         Else
                                 DrawText "0",xpos,5
                         EndIf
                 EndIf
                
                 'do the minutes
                 If (minute And binaryMask)
                         DrawText "1", xpos,25
                 Else
                         DrawText "0", xpos,25
                 EndIf
                 
                 'do the seconds
                 If (second And binaryMask)
                         DrawText "1",xpos,45
                 Else
                         DrawText "0",xpos,45
                 EndIf
         Next
        
         'make the text red For the decimal time
         SetColor(255,0,0)
         DrawText "Decimal: " + CurrentTime$(),5,65
         'set the text back To white For the rest
         SetColor(255,255,255)
 
 	 Flip
 
         'will wait half a second
         WaitTimer(secondTimer)
 	 If KeyHit(KEY_ESCAPE) Exit
 Forever

Spelletjies wat in Blitz Basic geskryf is 
Master of Defense  - Blitz 3DGrid Wars - Blitz Max
Treasure Fall - Blitz PlusInca Quest  - Blitz Max
Naked War - Blitz 3DPlatypus - Blitz 2D (Mac port, Blitz Max)
Sphere Racer  - Blitz 3DOh No More Invaders From Space - Blitz 3D
SpongeBob SquarePants Obstacle Odyssey - Blitz 3DSuper Gerball - Blitz 3D
Bruce Lee - Blitz 2DWorms - oorspronklike titel Total Wormage en ontwikkeld in Blitz BASIC op die Amiga voor die kommersialisering deur 

 Verwysings 

 Eksterne skakels 
Blitz Research Die amptelike Blitz BASIC webwerf
BlitzBasic op dmoz 
BlitzBasic on WikiWikiWeb
Amptelike Franstalige webwerf van Blitz BASIC 
Socoder
Russiestalige elektroniese tydskrif "Blitz Et Cetera" 
BlitzBASIC codebase  programkode argief
Syntaxbomb - Indie Coders Gemeenskapsforums
GitHub bronkode van BlitzMax

 Blitz Basic boeke Learn to Program 2D Games in Blitz Basic by John "Krylar" Logsdon, (2003) website of creater http://www.krylarskreations.com/bb_book.shtml Game Programming for Teens by Maneesh Sethi, (2003), ISBN 1-59200-068-1Games Programming for the Absolute Beginner with Blitzmax by Sloan Kelly, ISBN 0-9553771-0-23D Game Programming for Teens'' by Eric Grebler, (2006) ISBN 1-59200-900-X

Programmeertale
Vrye sagteware