Loading AI tools
来自维基百科,自由的百科全书
Blitz BASIC是由紐西蘭程式設計師Mark Sibly設計的第一個Blitz系列程式語言。Blitz的語法基於BASIC,適合初學者且易於掌握。Blitz系列語言面向遊戲變成,但通常被認為是通用語言,足以用於大多數類型的應用程式。Blitz隨著新產品的發布和發展,新版本為更高級的編程技術提供了支持,例如物件導向和多執行緒。這讓這系列的語言在後來脫離了BASIC的名字。[1]
開發者 | Blitz Research |
---|---|
程式語言 | 使用C++編寫,但語言風格屬於BASIC |
作業系統 | Microsoft Windows |
平台 | Microsoft Windows |
語言 | 英語 |
類型 | 遊戲製作引擎 |
許可協議 | zlib許可證 |
網站 | www |
Blitz語言的第一個版本是為Amiga平台製作的,由澳大利亞公司Memory and Storage Technology發布。回到紐西蘭的幾年後,[注 1]Acid Software[注 2]發布了Blitz BASIC 2。從此,Blitz編譯器在多個平台上發布。隨著Amiga在商業平台上的消亡,Blitz BASIC 2源碼在Amiga社區發布,至今仍以AmiBlitz的名義發展。[3]
Idigicon在2000年10月發布,面向Microsoft Windows系統。該語言包括一個用於處理基本2D圖形和音頻的內置API。隨著Blitz3D的發布,BlitzBasic通常被稱為Blitz2D。
當英國流行的計算機雜誌例如PC Format上發布了有限制的「免費」版本時,人們對於BlitzBasic的認識變深。這雖然令開發商和出版商之間發生法律糾紛,但最終友好解決。
設計者 | Mark Sibly |
---|---|
實作者 | Blitz Research Ltd. |
面市時間 | 2001 |
作業系統 | Microsoft Windows |
網站 | www |
Blitz3D(簡稱B3D)為BlitzBasic添加了200多個3D命令。BlitzBasic的語法在Blitz3D上完全可用。BlitzPlus的GUI命令不包括在內,但BlitzBasic和Blitz3D的免費拓展——BlitzUI可以添加與GUI功能相關的命令。BlitzUI的樣子近似於Windows的經典用戶界面,例如菜單欄和下拉菜單。但與BlitzPlus不用的是,它不使用Windows的標準GUI。儘管Blitz3D已停止接受更新,但Mark Sibly還是發布了一個針對Windows 8的錯誤修復版本。
Blitz3D於2014年8月3日開放源碼,可在Github上獲取。Blitz3D使用Microsoft Visual C++ 6.0編寫。[4]
2003年2月,Blitz Research Ltd.發布了同樣適用於Microsoft Windows的BlitzPlus。它缺少Blitz3D所擁有的3D引擎,但它通過實現有限的Microsoft Windows控制項支持來創建圖形用戶界面,為該語言的2D端添加了新功能。2D引擎的向後兼容性也得到了拓展,允許BlitzPlus製作的遊戲和應用程式可能在僅有DirectX 1的系統上運行。
編程範型 | 指令式編程,物件導向,模塊化編程,反射式編程 |
---|---|
設計者 | Mark Sibly |
實作者 | Blitz Research Ltd. |
面市時間 | 2004 |
型態系統 | 靜態,弱類型,強類型(可選) |
作業系統 | Microsoft Windows, Mac OS X, Linux |
網站 | www |
衍生副語言 | |
Official BlitzMax, bmx-ng | |
啟發語言 | |
BlitzBasic | |
影響語言 | |
Monkey |
第一個BlitzMax編譯器於2004年12月發布,面向Mac OS X。這使BlitzMax成為第一個可以在*nix平台上編譯的Blitz語言。Microsoft Windows和Linux的編譯器隨後於2005年5月發布。BlitzMax通過拓展類型系統以包含物件導向的概念,並修改圖形API以更好地適應OpenGL,為現代Blitz系列帶來了最大的語言結構變化。BlitzMax也是第一種在內部使用UCS-2編碼的Blitz語言,允許顯示非ASCII字符組成的字符串。
BlitzMax的平台無關命令集允許開發人員在多個平台上編譯和運行原始碼。然而,官方的編譯器和構建鏈僅會為它正在執行的平台生成二進制文件。非正式地說,用戶已經能夠讓Linux和Mac OS X交叉編譯至Windows平台。
BlitzMax也是Blitz系列的第一個模塊化程式語言,提高了命令集的可拓展性。此外,編譯器所附帶的所有標準模塊都是開源的,因此程式設計師可以在必要時進行調整和重新編譯。官方的BlitzMax跨平台圖形用戶界面模塊(稱為MaxGUI)允許開發人員為他們在Linux(FLTK)、Mac (Cocoa)和Windows上的應用程式編寫GUI界面。各種用戶貢獻的模塊例如wxWidgets、Cairo和Fontconfig等一系列資料庫模塊拓展了該語言的使用範圍。還有一些第三方3D模塊可供選擇,即MiniB3D[5],一個開源的OpenGL引擎,可以在BlitzMax支持的所有三個平台上編譯和運行。
2007年10月,BlitzMax 1.26版發布,其中增加了反射模塊。[6]BlitzMax 1.32發布包括新的執行緒和Lua腳本模塊,大多數標準庫函數都已更新,因此它們支持Unicode編碼。[7]
Blitz3D SDK是一個基於Blitz3D引擎製作的3D圖形引擎。它是為配合C++、C#、BlitzMax和PureBasic而出現的,但它也可以與遵循兼容調用協議的其他語言配合使用。
2008年,基於C++的跨平台3D引擎Max3D的源碼通過BSD許可證公布。該引擎專注於OpenGL,但也為其他圖形驅動程序(例如DirectX)提供了一個抽象後端,並使用了幾個開源庫,即Open Asset Import Library、Boost和ODE。
儘管在Blitz社區中,Max3D是人們熱切期待的Blitz3D的繼承者。但是在源碼公布後不久,人們對它的興趣和支持就消失了,最終開發陷入停頓。沒有任何跡象標明Blitz Research會重新啟動項目。
BlitzPlus與2014年4月28日通過zlib許可證在Github上以開源形式發布。[8][9] Blitz3D隨後於2014年8月3日以開源形式發布,[10][11] BlitzMax後來於2015年9月21日以開源形式發布。[12]
一個在屏幕上列印Hello World,並按任意鍵結束的示例:
Print "Hello World" ; 打印至屏幕
WaitKey() ; 暂停执行,直到按下任意键
End ; 结束程序
以下聲明變量並列印至屏幕的演示程序使用三種主要數據類型(字符串、整數和浮點):
name$ = "John" ; 创建一个字符串变量($)
age = 36 ; 创建一个整数变量(无小数)
temperature# = 27.3 ; 创建一个浮点变量(#)
print "My name is " + name$ + " and I am " + age + " years old."
print "Today, the temperature is " + temperature# + " degrees."
Waitkey() ; 暂停执行,直到按下任意键
End ; 结束程序
創建一個窗口應用程式,該程序以二進制和十進制格式顯示時間。關於BlitzBasic和BlitzMax版本,請參見下文:
BlitzBasic版本 | BlitzMax版本 |
---|---|
AppTitle "Binary Clock"
Graphics 150,80,16,3
;创建一个计时器
;这代表主循环每秒执行两次
secondtimer=CreateTimer(2)
;#####################################################
Repeat ; 主循环
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
;如果不清屏,PM点将会在午夜过后被保留
Cls
Color(0,255,0) ;将PM部分的文本设置为绿色
If PM = 1 Then Text 5,5,"PM"
;将其余部分文本颜色设置回白色
Color(255,255,255)
For bit=0 To 5
xpos=20*(6-bit)
binaryMask=2^bit
;时
If (bit<4)
If (hour And binaryMask)
Text xpos,5,"1"
Else
Text xpos,5,"0"
EndIf
EndIf
;分
If (minute And binaryMask)
Text xpos,25,"1"
Else
Text xpos,25,"0"
EndIf
;秒
If (second And binaryMask)
Text xpos,45,"1"
Else
Text xpos,45,"0"
EndIf
Next
;将文本颜色设为红色,表示十进制时间
Color(255,0,0)
Text 5,65,"Decimal: " + CurrentTime$()
;将其余部分文本颜色设置回白色
Color(255,255,255)
;等待半秒钟
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
'如果不清屏,PM点将会在午夜过后被保留
Cls
SetColor(0,255,0) '将PM部分的文本设置为绿色
If PM = 1 Then DrawText "PM",5,5
'将其余部分文本颜色设置回白色
SetColor(255,255,255)
For bit=0 Until 6
xpos=20*(6-bit)
binaryMask=2^bit
'时
If (bit<4)
If (hour & binaryMask)
DrawText "1",xpos,5
Else
DrawText "0",xpos,5
EndIf
EndIf
'分
If (minute & binaryMask)
DrawText "1", xpos,25
Else
DrawText "0", xpos,25
EndIf
'秒
If (second & binaryMask)
DrawText "1",xpos,45
Else
DrawText "0",xpos,45
EndIf
Next
'将文本颜色设为红色,表示十进制时间
SetColor(255,0,0)
DrawText "Decimal: " + CurrentTime(),5,65
'将其余部分文本颜色设置回白色
SetColor(255,255,255)
Flip
'等待半秒钟
WaitTimer(secondTimer)
If KeyHit(KEY_ESCAPE) Then Exit
Forever
|
2011年,BRL發布了一種新的跨平台程式語言Monkey和第一個官方模塊Mojo。Monkey的語法與BlitzMax類似,但它不是直接將源碼編譯成彙編代碼,而是直接將Monkey源文件翻譯成所選語言、框架或平台的原始碼,例如Mac OS X、iOS、Android、HTML5和Adobe Flash。
Monkey X的開發已經停止,取而代之的是Monkey 2,這是由Mark Sibly製作的更新版本的語言。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.