43
BlitzPlus Blitz3D,BlitzPlus,BLitz Max Tauri Vahar

BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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

Page 1: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzPlusBlitz3D,BlitzPlus,BLitzMax

Tauri Vahar

Page 2: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

Ü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

Page 3: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

Ü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.

Page 4: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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

Page 5: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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.

Page 6: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzPlus

• Otsene Blitz2D järeltulija.• Kogu Blitz2D funktsionaalsus ja lisaks käsud

GUI jaoks.

Page 7: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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.

Page 8: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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.

Page 9: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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)

Page 10: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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.

Page 11: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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

Page 12: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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.

Page 13: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzPlus struktuurid3

• Ship listi kasutamine ja kasutude objektide kustutamine

For EnemyShips.Ship = Each Ship If EnemyShips\iAlive = 0

Delete EnemyShips EndIf

Next

Page 14: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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

Page 15: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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)+(#,$)

Page 16: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzPlus operaatorid

• Aritmeetika: +, -, ~,*, /, ^, Mod• Võrdlemine: =, <, >, <=, >=, <>• Loogika: Not, And, Or,Xor• Shl,Shr,Sar

Page 17: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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

Page 18: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

Blitz3D üldiselt

• 3D mootor toetab järgmist:• Flexible entity system, Meshes, Terrains,

Sprites, Cameras, Lights, Flexible brush system, Multitexturing, Environment mapping, 3D audio

Page 19: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax

• Keelele tehti reset :D.• Uuendatud süntaks• Lisati OOP • Kiirem kompilaator• Linux,Mac,Windows

Page 20: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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

Page 21: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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.

Page 22: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax moodulid

Kaasas on järgmised moodulid:Audio,Streams,Reflection,Basic,Graphics,GUI,Events,System,Networking,User Input,Data Structres,Math

Page 23: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax keel

On erinevalt eelmistest keeltest olemas ka continue line character, milleks on kaks punkti “..”

Page 24: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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.

Page 25: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax pointers

• Pointeritega saab opereerida samamoodi nagu C keeltes.

• Ainuke miinus on, et Type-i ehk Klassi meetodite pointereid ei saa kasutada.

Page 26: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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]

Page 27: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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

Page 28: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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.

Page 29: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax kommentaarid

• Ühele reale annab kommentaari kirjutada‘ ehk ülakoma abil.• Koodi blokke saab Rem...EndRem abil

kommenteerida.

Page 30: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax kommentaarid

• Ühele reale annab kommentaari kirjutada‘ ehk ülakoma abil.• Koodi blokke saab Rem...EndRem abil

kommenteerida.

Page 31: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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.

Page 32: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax andmetüübid

• Byte• Short• Int• Long• Float• Double• String

• Object• Array• Function• Pointer• Variable

Page 33: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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)

Page 34: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax literaalid2

• Mõlemad viisid on õigedmuutuja:Float = muutuja#muutuja:String=muutuja$

Hexakoodis Long tüüpi täisarv$8000000000000000:Long

Page 35: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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

Page 36: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax erindid

• Function ExTest() Throw "Bingo!" End Function Try ExTest()

Catch ex:Object Print ex.ToString()

End Try

• TNullMethodException• TNullFunctionException• TNullObjectException• TArrayBoundsException• TRuntimeException

Page 37: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax functioonid

• Function Identifier : ReturnType ( Parameters ) Function statements...End Function

Page 38: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax struktuurid1

• While Expression StatementsWend

• Repeat StatementsUntil Expression

• Repeat StatementsForever

Page 39: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax struktuurid2

• For IndexVariable = FirstValue To LastValue Step StepValue StatementsNext

• For IndexVariable = FirstValue Until LastValue Step StepValue statementsNext

Page 40: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax struktuurid3

• If Expression Then Statements Else Statements• If Expression

StatementsElse If Expression StatementsElse StatementsEndIf

Page 41: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax struktuurid4

• Select ExpressionCase Expressions StatementsDefault StatementsEnd Select

Page 42: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

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: =, <, >, <=, >=, <>

Page 43: BlitzPlus Blitz3D,BlitzPlus,BLitzMax

BlitzMax kasutaja defineeritud tüübid

• Type Typename Extends TypenameGlobal muutja1Field muutja2Function Identifier : ReturnType ( Parameters)EndFunctionMehtod Identifier : ReturnType ( Parameters)EndmethodEndType