Blitz PODSTAWOWE - Blitz BASIC
Deweloper(zy) | Badania Blitz . |
---|---|
Napisane w | Skompilowany do C++ , ale języki są dialektami BASIC |
System operacyjny | Microsoft Windows |
Platforma | Microsoft Windows |
Dostępne w | język angielski |
Rodzaj | System tworzenia gier |
Licencja | licencja zlib |
Stronie internetowej | www |
Blitz BASIC to dialekt języka programowania pierwszych kompilatorów Blitz, opracowany przez dewelopera z Nowej Zelandii , Marka Sably. Pochodząca z języka BASIC składnia Blitza została zaprojektowana tak, aby była łatwa do opanowania dla początkujących, którzy uczą się programowania. Języki te są zorientowane na programowanie gier, ale często są wystarczająco uniwersalne, aby można je było wykorzystać w większości typów aplikacji. Język Blitz ewoluował wraz z wypuszczaniem nowych produktów, a ostatnie wcielenia oferują obsługę bardziej zaawansowanych technik programowania, takich jak orientacja obiektowa i wielowątkowość . Doprowadziło to do tego, że w późniejszych latach języki straciły przydomek BASIC.
Historia
Pierwsza iteracja języka Blitz została stworzona na platformę Amiga i wydana przez australijską firmę Memory and Storage Technology. Wracając do Nowej Zelandii , Blitz BASIC 2 został opublikowany kilka lat później (według tej informacji prasowej około 1993 roku) przez Acid Software (lokalny wydawca gier na Amigę). Od tego czasu kompilatory Blitz zostały wydane na kilka platform . Po upadku Amigi jako komercyjnej platformy, kod źródłowy Blitz BASIC 2 został udostępniony społeczności Amigi. Rozwój trwa do dziś pod nazwą AmiBlitz.
BlitzBasic
Idigicon opublikował BlitzBasic dla Microsoft Windows w październiku 2000 roku. Język zawierał wbudowane API do wykonywania podstawowych operacji graficznych 2D i audio. Po wydaniu Blitz3D, BlitzBasic jest często określany jako Blitz2D.
Rozpoznawalność BlitzBasic wzrosła, gdy w popularnych brytyjskich magazynach komputerowych, takich jak PC Format, rozpowszechniano ograniczoną liczbę „darmowych” wersji . Doprowadziło to do sporu prawnego między deweloperem a wydawcą, który ostatecznie został rozwiązany polubownie.
BlitzPlus
W lutym 2003 Blitz Research Ltd. wydała BlitzPlus również dla Microsoft Windows. Brakowało w nim silnika 3D Blitz3D, ale wprowadził nowe funkcje do strony 2D języka, implementując ograniczoną obsługę sterowania Microsoft Windows do tworzenia natywnych GUI . Rozszerzono również wsteczną kompatybilność silnika 2D, umożliwiając uruchamianie skompilowanych gier i aplikacji BlitzPlus na systemach, które mogą mieć tylko DirectX 1.
BlitzMax
Paradygmat | imperatywne , obiektowe , modułowe , refleksyjne |
---|---|
Zaprojektowany przez | Zaznacz Sible |
Deweloper | Blitz Research Sp. |
Po raz pierwszy pojawiły się | 2004 |
Ostateczne wydanie | 1,51 / 21 września 2015
|
Dyscyplina pisania | Statyczny , Słaby , Silny (opcjonalnie) |
OS | Microsoft Windows , Mac OS X , Linux |
Stronie internetowej | www |
Dialekty | |
Oficjalny BlitzMax, bmx-ng | |
Wpływem | |
BlitzBasic | |
Pod wpływem | |
Małpa |
Pierwszy BlitzMax kompilator został wydany w grudniu 2004 dla Mac OS X . To sprawiło, że był to pierwszy dialekt Blitza, który można było skompilować na platformach *nix. Kompilatory dla Microsoft Windows i Linux zostały następnie wydane w maju 2005 roku. BlitzMax wprowadził największą zmianę struktury języka do nowoczesnej gamy produktów Blitz, rozszerzając system typów o koncepcje zorientowane obiektowo i modyfikując API graficzne, aby lepiej pasowało do OpenGL . BlitzMax był również pierwszym z języków Blitz, który wewnętrznie reprezentował ciągi znaków przy użyciu UCS-2 , umożliwiając natywną obsługę literałów ciągów składających się ze znaków spoza ASCII .
Niezależny od platformy zestaw poleceń BlitzMax pozwala programistom kompilować i uruchamiać kod źródłowy na wielu platformach. Jednak oficjalny kompilator i łańcuch kompilacji wygeneruje pliki binarne tylko dla platformy, na której jest wykonywany. Nieoficjalnie użytkownicy byli w stanie skompilować systemy Linux i Mac OS X z platformą Windows.
BlitzMax to także pierwsza modułowa wersja języków Blitz, poprawiająca rozszerzalność zestawu poleceń. Ponadto wszystkie standardowe moduły dostarczane z kompilatorem są typu open source i mogą być w razie potrzeby modyfikowane i ponownie kompilowane przez programistę. Oficjalny wieloplatformowy moduł GUI BlitzMax (znany jako MaxGUI) umożliwia programistom pisanie interfejsów GUI dla swoich aplikacji w systemach Linux ( FLTK ), Mac ( Cocoa ) i Windows. Różne moduły wnoszone przez użytkowników rozszerzają użycie języka poprzez owijanie takich bibliotek, jak wxWidgets , Cairo i Fontconfig , a także wybór modułów bazy danych. Dostępny jest również wybór modułów 3D innych firm, a mianowicie MiniB3D - silnik OpenGL o otwartym kodzie źródłowym, który można skompilować i używać na wszystkich trzech platformach obsługiwanych przez BlitzMax.
W październiku 2007 wydano BlitzMax 1.26, który zawierał dodatkowy moduł odbicia . BlitzMax 1.32 dostarczył nowe moduły do obsługi wątków i skryptów Lua , a większość standardowych funkcji bibliotecznych została zaktualizowana tak, aby były przyjazne dla Unicode .
Blitz3D SDK
Blitz3D SDK to silnik graficzny 3D oparty na silniku Blitz3D. Został wprowadzony na rynek do użytku z C++ , C# , BlitzMax i PureBasic , jednak mógł być również używany z innymi językami zgodnymi z konwencjami wywoływania.
Moduł Max3D
W 2008 roku kod źródłowy Max3D - wieloplatformowego silnika 3D opartego na C++ - został wydany na licencji BSD . Ten silnik koncentrował się na OpenGL, ale miał abstrakcyjny backend dla innych sterowników graficznych (takich jak DirectX) i korzystał z kilku bibliotek open-source, a mianowicie Assimp , Boost i ODE .
Pomimo podekscytowania społeczności Blitz, w której Max3D jest niecierpliwie oczekiwanym następcą Blitz3D, zainteresowanie i wsparcie ucichły wkrótce po wydaniu kodu źródłowego i ostatecznie rozwój został wstrzymany. Nic nie wskazuje na to, że Blitz Research ponownie podejmie ten projekt.
Wersja open source
BlitzPlus został wydany jako open-source 28 kwietnia 2014 roku na licencji zlib na GitHub . Blitz3D pojawił się wkrótce potem i został wydany jako Open Source 3 sierpnia 2014 roku. BlitzMax został później wydany jako Open Source 21 września 2015 roku.
Przykłady
Program Hello World , który drukuje na ekranie, czeka na naciśnięcie klawisza, a następnie kończy działanie:
Print "Hello World" ; Prints to the screen.
WaitKey() ; Pauses execution until a key is pressed.
End ; Ends Program.
Program, który demonstruje deklarację zmiennych przy użyciu trzech głównych typów danych (Strings , Integers i Floats ) i wyświetla je na ekranie:
name$ = "John" ; Create a string variable ($)
age = 36 ; Create an integer variable (No Suffix)
temperature# = 27.3 ; Create a float variable (#)
print "My name is " + name$ + " and I am " + age + " years old."
print "Today, the temperature is " + temperature# + " degrees."
Waitkey() ; Pauses execution until a key is pressed.
End ; Ends program.
Program tworzący aplikację okienkową wyświetlającą aktualny czas w formacie binarnym i dziesiętnym. Zobacz poniżej wersje BlitzMax i BlitzBasic:
BlitzWersja podstawowa | Wersja BlitzMax |
---|---|
AppTitle "Binary Clock"
Graphics 150,80,16,3
;create a timer that means the main loop will be
;executed twice a second
secondtimer=CreateTimer(2)
;#####################################################
Repeat ; MAIN LOOP
Hour = Left(CurrentTime$(),2)
Minute = Mid(CurrentTime$(),4,2)
Second = Right(CurrentTime$(),2)
If Hour >= 12 Then PM = 1
If Hour > 12 Then Hour = Hour - 12
If Hour = 0 Then Hour = 12
;should do this otherwise the PM dot will be
;left up once the clock rolls past midnight!
Cls
Color(0,255,0) ;make the text green for the PM part
If PM = 1 Then Text 5,5,"PM"
;set the text colour back to white for the rest
Color(255,255,255)
For bit=0 To 5
xpos=20*(6-bit)
binaryMask=2^bit
;do hours
If (bit<4)
If (hour And binaryMask)
Text xpos,5,"1"
Else
Text xpos,5,"0"
EndIf
EndIf
;do the minutes
If (minute And binaryMask)
Text xpos,25,"1"
Else
Text xpos,25,"0"
EndIf
;do the seconds
If (second And binaryMask)
Text xpos,45,"1"
Else
Text xpos,45,"0"
EndIf
Next
;make the text red for the decimal time
Color(255,0,0)
Text 5,65,"Decimal: " + CurrentTime$()
;set the text back to white for the rest
Color(255,255,255)
;will wait half a second
WaitTimer(secondTimer)
Forever
;#####################################################
|
AppTitle = "Binary Clock"
Graphics 145,85
secondtimer = CreateTimer(2)
Repeat
Hour = CurrentTime()[..2].ToInt()
Minute = CurrentTime()[4..6].ToInt()
Second = CurrentTime()[6..].ToInt()
If Hour >= 12 Then PM = 1
If Hour > 12 Then Hour = Hour - 12
If Hour = 0 Then Hour = 12
'should do this otherwise the PM dot will be
'Left up once the clock rolls 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 Until 6
xpos=20*(6-bit)
binaryMask=2^bit
'do hours
If (bit<4)
If (hour & binaryMask)
DrawText "1",xpos,5
Else
DrawText "0",xpos,5
EndIf
EndIf
'do the minutes
If (minute & binaryMask)
DrawText "1", xpos,25
Else
DrawText "0", xpos,25
EndIf
'do the seconds
If (second & 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) Then Exit
Forever
|
Oprogramowanie napisane przy użyciu BlitzBasic
- Eschalon: Księga I - BlitzMax
- Eschalon: Księga II - BlitzMax
- Fairway Solitaire - BlitzMax
- GridWars - BlitzMax
- TVTower (klon MadTV o otwartym kodzie źródłowym) - BlitzMax
- Dziobak - Blitz2D (port Mac, BlitzMax)
- SCP — Przełamanie zabezpieczeń — Blitz3D
- Worms - pierwotnie zatytułowany Total Wormage i opracowany w Blitz Basic na Amidze przed komercyjnym wydaniem
Dziedzictwo
W 2011 roku firma BRL wydała nowy wieloplatformowy język programowania o nazwie Monkey i swój pierwszy oficjalny moduł o nazwie Mojo. Monkey ma podobną składnię do BlitzMax, ale zamiast kompilować bezpośrednio do kodu asemblera, tłumaczy pliki źródłowe Monkey bezpośrednio na kod źródłowy dla wybranego języka, frameworka lub platformy, np. Windows, Mac OS X , iOS , Android, HTML5 i Adobe Flash .
Rozwój Monkey X został wstrzymany na rzecz Monkey 2, zaktualizowanej wersji języka autorstwa Marka Sably.
Bibliografia
Linki zewnętrzne
-
Podstrona Blitz Research na itch.io (BlitzPlus, Blitz 3D, Monkey X, Monkey 2)
- Podstrona Monkey X (open source)
- Małpa 2 podstrona
- blitz-research (Mark Sarily) na GitHub (BlitzPlus, BlitzMax, Blitz3D, Monkey, BlitzMax, Blitz3D dla MSVC-CE 2017)
- Strona internetowa Blitz Research (archiwum 3 czerwca 2017)
- Strona internetowa Monkey X (archiwum 15 lipca 2017)