blitzplus blitz3d,blitzplus,blitzmax

43
BlitzPlus Blitz3D,BlitzPlus,BLitz Max Tauri Vahar

Upload: lamar-good

Post on 15-Mar-2016

53 views

Category:

Documents


7 download

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

TRANSCRIPT

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