Upload
lamar-good
View
53
Download
7
Embed Size (px)
DESCRIPTION
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 . - PowerPoint PPT Presentation
Citation preview
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) ;loob massiivi 3-e integeriga
; massiivi elementide väärtustamineFor 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ääsPlayerShip.Ship = New Ship PlayerShip\ShipName$ = "Kliazian Warbird"
• 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• Rekursioon lubatud• 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:• Flexible entity system, Meshes, Terrains,
Sprites, Cameras, Lights, Flexible brush 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 loomineLocal int_array[10]
võiLocal int_array:Int[]int_array=New Int[10]
võiLocal 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
• Integer100 'decimal literaal $CAFEBABE 'hexadecimal (16) literaal
%10101010 'binaar (2) literaal• Float
10.0 ‘kümme koma null1.5e-6 '1.5 korda(10 astems -6)
BlitzMax literaalid2
• Mõlemad viisid on õigedmuutuja:Float = muutuja#muutuja:String=muutuja$
Hexakoodis Long tüüpi täisarv$8000000000000000:Long
BlitzMax muutujad
• Declaration Identifier : 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
• Function Identifier : ReturnType ( Parameters ) Function statements...End Function
BlitzMax struktuurid1
• While Expression StatementsWend
• Repeat StatementsUntil Expression
• Repeat StatementsForever
BlitzMax struktuurid2
• For IndexVariable = FirstValue To LastValue Step StepValue StatementsNext
• For IndexVariable = FirstValue Until LastValue Step StepValue statementsNext
BlitzMax struktuurid3
• If Expression Then Statements Else Statements• If Expression
StatementsElse If Expression StatementsElse StatementsEndIf
BlitzMax struktuurid4
• Select ExpressionCase Expressions StatementsDefault StatementsEnd Select
BlitzMax operaatorid• :+Addition • :-Subtraction :• *Multiplication • :/Division • :ModRemainder • :&Bitwise and • :|Bitwise or • :~Bitwise exclusive or • :Shl Bitwise shift left • :Shr Bitwise shift right • :Sar Arithmetic shift right
my_var:+1 VÕI my_var=my_var+1my_var:Shl 4 VÕI my_var=my_var Shl 4
Võrdlemine: =, <, >, <=, >=, <>
BlitzMax kasutaja defineeritud tüübid
• Type Typename Extends TypenameGlobal muutja1Field muutja2Function Identifier : ReturnType ( Parameters)EndFunctionMehtod Identifier : ReturnType ( Parameters)EndmethodEndType