430 likes | 573 Views
BlitzPlus Blitz3D,BlitzPlus,BLitzMax. Tauri Vahar. Ülevaade. Blitz BASIC on termin mida kasutatakse viitamaks kõikidele Blitz keeltele. Kompilaatorid tasulised Kompilaatorid erinevatele platformidele Eelkõige mängude programmeerimiseks Hea protoüüpide kirjutamiseks .
E N D
BlitzPlusBlitz3D,BlitzPlus,BLitzMax Tauri Vahar
Ülevaade • Blitz BASIC on termin mida kasutatakse viitamaks kõikidele Blitz keeltele. • Kompilaatorid tasulised • Kompilaatorid erinevatele platformidele • Eelkõige mängude programmeerimiseks • Hea protoüüpide kirjutamiseks. • Ükski keel pole tõusutundlik
Üldised käsu katekooriad: • Basic, math, string, text, input, bank, file, stream, network, TCP, UDP, DirectPlay, DirectShow, sound, 2D and 3D graphics, graphics buffers, image, time, system, debug.
Ajalugu • Disainitud Mark Sibly poolt Amigale.(Blitz) • Blitz2 mõni aeg hiljem • Blitz Basic/Blitz2D väljalase Oct 2000 • Edu aluseks olid tasuta versioonid, mis Inglismaal kaasati koos ajakirjaga PC Format. • Blitz3D väljalse September 2001 • BlitPlus väljalase Veebruar 2003 • BlitzMax väljalase 2004
BlitzBasic/Blitz2D • 2D mängude loomiseks • Pole enam kättesaadav ja ei jookse uuemate OP süsteemide peal • Põhimõtteliselt välja surnud ja asendatud uuemate liigikaaslastega.
BlitzPlus • Otsene Blitz2D järeltulija. • Kogu Blitz2D funktsionaalsus ja lisaks käsud GUI jaoks.
BlitzPlus üldiselt • BASIC/C hübriid. • Sisse ehitatud IDE ja kompilaator, koos väga korraliku silujaga. • 2D graafika mootor • Lihtsad heli, sõne, pildi, faili, võrgu, matemaatika, kokkupõrke funktsioonid. Ühesõnaga kõik vajalik lihtsamate mängude tegemiseks.
BlitzPlus üldiselt • Koodil, kui tekstil puudub konstruktsioon ehk võib kirjutada nii kuidas ise tahad. Soovitav on siiski käskude vahele panna : kuid ei pea seda tegema.
BlitzPlus muutujad • iNumber(default to integer) • iNumber% = 200 (int) • fNumber# = 200.125 (float) • sNumber$ = "Hello!" (string) • Global iNumber(int mis on kättesaadav igal pool programmis) • Local iNumber(int mis on kättesaadav ainult deklareeritud skoobis nt funktsioonis) • Const iNumber(int muutuja mida ei saa muuta)
BlitzPlus massiivid • ; märk alustab real commentaari osa • Dim DataX%(3) ;loobmassiivi 3-e integeriga ; massiivielementide väärtustamine For x = 0 To 3 DataX(x) = x Next ; lõpetab For tsükli.
BlitzPlus struktuurid1 • On ainult ühte tüüpi struktuur Type. Saab hoida ainult muutujaid, mis peavad olema märgitud sõnaga Field. Global muutujaid ei saa Type-is hoida. • Loome struktuuri prototüübi. Type Ship Field ShipName$ Field iX,iY End Type
BlitzPlus struktuurid2 • Objecti loomine ja väljale juurdepääs PlayerShip.Ship= New Ship PlayerShip\ShipName$ = "KliazianWarbird" • Iga tüübi prototüübi nimi(Ship) käitub, kui Linked List.(täpsemalt järgmine slaid) • Muutuja nimi(PlayerShip.) on põhimõtteliselt pointer objektile.
BlitzPlus struktuurid3 • Ship listi kasutamine ja kasutude objektide kustutamine For EnemyShips.Ship = Each Ship If EnemyShips\iAlive = 0 Delete EnemyShips EndIf Next
BlitzPlus struktuurid4 • If...Then...Else...ElseIf...EndIf • Select...Case...Default...End Select • Repeat...Until...Forever • While...Wend • For...To...Step...Next • Exit-väljub loobist
BlitzPlus funktsioonid • Function {funcname}{typetag}( {params} ) {statements} End Function • Function numletters%(passedname$) Return Len(passedname$) End Function • Saab kasutada operaatorina • Rekursioonlubatud • Tagastustüüp vaikimisi %(int)+(#,$)
BlitzPlus operaatorid • Aritmeetika: +, -, ~,*, /, ^, Mod • Võrdlemine: =, <, >, <=, >=, <> • Loogika: Not, And, Or,Xor • Shl,Shr,Sar
Blitz3D • Süntaks oma olemuselt sama, mis BlitzPlus-il. • Omab kogu BlitzPlus funktsionaalsust va. GUI. • Lisatud sisse 3D mootor ja käsustik selle jaoks. • entities, brushes, meshes, terrains, sprites, cameras, lights, multitexturing and environment mapping. • Ainult DirectX • Võimalik kasutada DLL-e
Blitz3D üldiselt • 3D mootor toetab järgmist: • Flexibleentity system, Meshes, Terrains,Sprites,Cameras,Lights,Flexiblebrush system,Multitexturing, Environment mapping, 3D audio
BlitzMax • Keelele tehti reset :D. • Uuendatud süntaks • Lisati OOP • Kiirem kompilaator • Linux,Mac,Windows
BlitzMax on BASIC aga lisadega • Function pointers • Fully dynamic arrays • Inheritance and polymorphism • 'By reference' function parameters • Byte, Short, Int, Long, Float and Double numeric data types • Array and string slicing • Flexible 'collection' system for dealing with linked lists etc • Low level pointer handling • UTF16 strings • The ability to 'Incbin' binary data and access it as easily as if it were a regular file • External language support for interfacing with C/C++/ObjectiveC or assembly code
BlitzMax • Erinevatele platformidele Win,Mac,Linux • Moduaalrne disain, mis lubab luua käskude raamatukogusi. • Kergesti kasutatav 2D käskude kogum • Kiire ja kerge compileerimis süsteem. Kasutab palju pre-compiled võtteid, mis tagab väga kiire Test ,Debug and fix lähenemise.
BlitzMax moodulid Kaasas on järgmised moodulid: Audio,Streams,Reflection,Basic,Graphics,GUI, Events,System,Networking,User Input, Data Structres,Math
BlitzMax keel On erinevalt eelmistest keeltest olemas ka continue line character, milleks on kaks punkti “..”
BlitzMax memory • Kasutab Garbage collectorit, mida saab ise vastavalt oma soovile sisse ja välja lülitad või muuta opereerimis stiili. • Samuti on võimalik kogu mälu haldus täiesti üle võtta ja opereerida nagu C keeltes. • MemAlloc,MemFree,MemExtend,MemClear käskudega.
BlitzMax pointers • Pointeritega saab opereerida samamoodi nagu C keeltes. • Ainuke miinus on, et Type-i ehk Klassi meetodite pointereid ei saa kasutada.
BlitzMax massiivid • Int tüüpi massiivi loomine Local int_array[10] või Local int_array:Int[] int_array=New Int[10] või Local int_array[]=[1,2,3,4,5]
BlitzMax ühilduvus • Programmi teksti alguses kasutadaStrict või SuperStrict. • Reguleerib kui vabalt saab koodi kirjutada. • Strict tüüpi programmides tuleb kõik muutujad deklareerida kas Local, Const või Global muutujateks • SuperStricti puhul tuleb ka kindlasti määrata tüüp kujulmuutuja:Float, muutuja:Int,muutuja:obj
BlitzMax collektisoonid • Kaasas on ainult List,Map moodulid, seega tuleb nii mõnigi ise kirjutada. • Lisades kasutaja poolt defineeritud tüübile meetodi ObjectEnumerator() on võimalik luua ise endale vajalikke kollektsioone. Üldiselt saab hakkama laiendades juba olemasolevaid kollektsiooni tüüpe.
BlitzMax kommentaarid • Ühele reale annab kommentaari kirjutada ‘ ehk ülakoma abil. • Koodi blokke saab Rem...EndRem abil kommenteerida.
BlitzMax kommentaarid • Ühele reale annab kommentaari kirjutada ‘ ehk ülakoma abil. • Koodi blokke saab Rem...EndRem abil kommenteerida.
BlitzMax konditsiooniline compileerimine • ?Debug 'Any code here is only compiled in debug mode. • ?Not Debug 'Any code here is only compiled in release mode. • ? 'Code here is always compiled.
BlitzMax andmetüübid • Byte • Short • Int • Long • Float • Double • String • Object • Array • Function • Pointer • Variable
BlitzMax literaalid • Integer 100 'decimal literaal $CAFEBABE 'hexadecimal (16) literaal %10101010 'binaar (2) literaal • Float 10.0 ‘kümme koma null 1.5e-6 '1.5 korda(10 astems -6)
BlitzMax literaalid2 • Mõlemad viisid on õiged muutuja:Float = muutuja# muutuja:String=muutuja$ Hexakoodis Long tüüpi täisarv $8000000000000000:Long
BlitzMax muutujad • DeclarationIdentifier:Type=Expression • Kolme tüüpi: Local ,Global ja Field • Global-kehtib terves programmis • Local-kehtib deklareerims skoobiks ja mõeldud ajutiste muutujate jaoks funktsioonides, loopides. • Field-kasutaja poolt loodud tüüpide muutujate deklareerimiseks
BlitzMax erindid • Function ExTest() Throw "Bingo!" End Function Try ExTest() Catch ex:Object Print ex.ToString() End Try • TNullMethodException • TNullFunctionException • TNullObjectException • TArrayBoundsException • TRuntimeException
BlitzMax functioonid • FunctionIdentifier:ReturnType(Parameters)Function statements...End Function
BlitzMax struktuurid1 • WhileExpressionStatementsWend • RepeatStatementsUntilExpression • RepeatStatementsForever
BlitzMax struktuurid2 • ForIndexVariable=FirstValueToLastValueStepStepValueStatementsNext • ForIndexVariable=FirstValueUntilLastValueStepStepValuestatementsNext
BlitzMax struktuurid3 • IfExpressionThenStatementsElseStatements • IfExpressionStatementsElse IfExpressionStatementsElseStatementsEndIf
BlitzMax struktuurid4 • SelectExpressionCaseExpressionsStatementsDefaultStatementsEnd Select
BlitzMax operaatorid my_var:+1VÕI my_var=my_var+1 my_var:Shl 4VÕI my_var=my_var Shl 4 • :+Addition • :-Subtraction : • *Multiplication • :/Division • :ModRemainder • :&Bitwise and • :|Bitwise or • :~Bitwise exclusive or • :ShlBitwise shift left • :ShrBitwise shift right • :SarArithmetic shift right Võrdlemine: =, <, >, <=, >=, <>
BlitzMax kasutaja defineeritud tüübid • TypeTypenameExtendsTypename Global muutja1 Field muutja2 Function Identifier:ReturnType(Parameters) EndFunction Mehtod Identifier:ReturnType(Parameters) Endmethod EndType