Programarea Jocurilor Pentru Adolescenti
-
Upload
daniela-cioroi-stanciu -
Category
Documents
-
view
217 -
download
0
Transcript of Programarea Jocurilor Pentru Adolescenti
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 1/10
IV
DIN PARTEA AUTORULUI
Mãiculiþã, da’ la mulþi trebuie sã le mai mulþumesc… Parcã aº fi la discursulde acceptare al premiului Oscar: mi-e fricã sã nu înceapã orchestra sã cânteºi sã fiu invitat afarã de pe scenã. Oricum, în primul rând îi mulþumesc lui
André LaMothe fiindcã mi-a dat o ºansã ºi fiindcã m-a invitat la prânz. Am sã mã revanºezpentru asta într-o zi. Le mulþumesc tuturor celor de la Premier Press: editorului de producþieJenny Davidson, redactorului Kezia Endsley, editorului de achiziþii Emi Smith ºi editoruluiCD-ului, Brandon Penticuff.
Mulþumiri ºi lui Adam Hepworth, care ºi-a petrecut o mare parte din „ocupata” lui zicitindu-mi textul ºi corectând o mulþime de greºeli. Tuturor fraþilor ºi surorilor mele, luiRachi, care s-a oferit sã mã ajute, deºi era la un ocean distanþã, Nagina, al cãrei ajutor ºi
susþinere (ºi numeroase telefoane) m-au ajutat sã o scot la capãt, ºi lui Ramit, care mi-aoferit un mode ºi care m-a ajutat la greu (ºi care mi-a dat ºansa sã folosesc cuvântul„suspensie“ într-o propoziþie). Vã mulþumesc cã aþi fost aici ºi m-aþi ajutat când am avutnevoie. Mamei ºi tatãlui meu: n-aº fi reuºit asta fãrã voi. Vã iubesc foarte mult.
În final, mulþumiri lui Edgar L. Ibarra (Feo) pentru desenele sale ºi lui Thomas Stenbäckpentru munca lui la muzica de pe acest CD. De asemenea, lui Ari Feldman, fiindcã mi-apermis sã-i folosesc biblioteca de sprite-uri pe CD.
De asemenea, pentru crearea unui program demo al cãrþii, mulþumesc lui Jason Brasierºi lui Edgar Ibarra pentru Rockfall, precum ºi lui Marcus „Eikon“ Smith pentru Galaxiga.
ªi tuturor ale cãror nume le-am uitat, se ºtiu ei cine sunt. Mulþumesc!
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 2/10
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 3/10
VI
CUPRINS
Introducere ................................................................... XI
PARTEA I: BAZELE LIMBAJULUI BASIC ............................ 1
Capitolul 1 Primii paºi .......................................................................3Un scurt istoric al limbajului BASIC ................................................... 3
Instalarea programului BlitzPlus .............................................. 4Ferestre ºi panouri ................................................................... 5Bare cu instrumente ................................................................ 6
Meniuri ..................................................................................... 7Primul joc: KONG .............................................................................. 7Compilarea codului ................................................................ 16
Rezumat ........................................................................................... 18
Capitolul 2 Primele noþiuni de BASIC............................................19Salut, lume! ...................................................................................... 19Variabile ........................................................................................... 23
Declararea variabilelor........................................................... 23Utilizarea variabilelor ............................................................. 24
Date de intrare ................................................................................. 26Condiþionalele .................................................................................. 28
Adevãrat ºi fals ...................................................................... 28If…Then (dacã…atunci) ........................................................ 29
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 4/10
Cuprins
If…Then…Else (dacã…atunci…altfel) .................................. 30Select…Case ......................................................................... 32
Operatori logici ................................................................................. 33Operatorul NOT ..................................................................... 35
Comanda Goto ................................................................................. 35
Un joc de ghicit cu interfaþã text ....................................................... 37Rezumat ........................................................................................... 39
Capitolul 3 Bucle, funcþii, tablouri ºi tipuri ...................................41Noþiunea de buclã ............................................................................ 41
For…Next .............................................................................. 42While…Wend......................................................................... 46Repeat…Until ........................................................................ 48
Funcþii .............................................................................................. 51
Consideraþii privind domeniul de vizibilitate .......................... 53Când se folosesc funcþiile ...................................................... 57Tablourile ......................................................................................... 58
Tablouri multidimensionale .................................................... 64Utilizarea tipurilor ............................................................................. 67
Sisteme de coordonate .......................................................... 75For…Each…Next .................................................................. 77
Totul la un loc: Textanoid! ................................................................ 79Rezumat ........................................................................................... 93
Capitolul 4 Factorul stil ...................................................................95Dezvoltarea stilului ........................................................................... 95
Spaþiul liber ºi indentarea ...................................................... 96Comentarii ........................................................................................ 97
Comentarii anterioare programului ........................................ 99Comentarii în programul principal........................................ 100Comentarii de funcþie ........................................................... 100
Nume de funcþii ºi de variabile ....................................................... 101Nume ................................................................................... 101
Format de nume .................................................................. 101Rezumat ......................................................................................... 103
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 5/10
CuprinsVIII
PARTEA A II-A: Î N FINE, GRAFICÃ!................................ 105
Capitolul 5 Primele noþiuni de graficã .........................................107Crearea ferestrei grafice ................................................................ 107
Lãþime ºi înãlþime ................................................................. 108
Adâncimea de culoare ......................................................... 109[Mode] .................................................................................. 110
Imagini............................................................................................ 114LoadImage ........................................................................... 114DrawImage .......................................................................... 116CreateImage ........................................................................ 118MaskImage .......................................................................... 122
Culori .............................................................................................. 125RGB ..................................................................................... 126
Color .................................................................................... 128Cls ºi ClsColor ..................................................................... 130
Rezumat ......................................................................................... 131
Capitolul 6 Rãsfoirea paginilor ºi reprezentarea pixelilor.........133Rãsfoirea paginilor ......................................................................... 133
Buffere ................................................................................. 136SetBuffer .............................................................................. 137CreateImage ........................................................................ 143
Blocarea ºi deblocarea bufferelor .................................................. 156
Lock/Unlock ......................................................................... 156ReadPixel()/ReadPixelFast() ............................................... 157WritePixel/WritePixelFast .................................................... 161
Utilizarea bufferelor: un program de desenare .............................. 166Iniþializare ............................................................................ 168Bucla principalã ................................................................... 170Funcþii .................................................................................. 172
Rezumat ......................................................................................... 180
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 6/10
Cuprins
Capitolul 7 Primele noþiuni de programare a imaginilor ...........181Transformãri................................................................................... 181
Translaþia ............................................................................. 181Scalarea............................................................................... 186Rotaþia ................................................................................. 209
Paralacticã ..................................................................................... 217TileBlock ºi TileImage ......................................................... 218
Rezumat ......................................................................................... 225
Capitolul 8 Animaþie ......................................................................227Utilizarea bitmap-urilor la animaþii ................................................. 227
Realizarea bitmap-urilor ...................................................... 234Afiºarea miºcãrii .................................................................. 239
Rezumat ......................................................................................... 247
Capitolul 9 Detecþia coliziunilor ...................................................249Coliziuni de bazã ............................................................................ 249Cercuri de delimitare ...................................................................... 253
Distanþa dintre puncte .......................................................... 253Raze .................................................................................... 255
Casete de delimitare ...................................................................... 260Coliziuni pixel-imperfecte ............................................................... 268Coliziuni pixel-perfecte ................................................................... 272Rezumat ......................................................................................... 274
PARTEA A III-A: ULTIMELE PIESE DIN PUZZLE .................. 275
Capitolul 10 Manipularea datelor de intrare .................................277Manipularea tastaturii ..................................................................... 277
KeyDown() ........................................................................... 278KeyHit() ................................................................................ 285
Maparea mouse-ului pe ecran ....................................................... 294Afiºarea cursorului mouse-ului ............................................ 295
Ce-ai spus? Tratarea apãsãrilor pe butoanele mouse-ului . 298Rotiþa mouse-ului ................................................................. 306Tratarea datelor introduse de la joystick ........................................ 310Rezumat ......................................................................................... 312
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 7/10
CuprinsX
Capitolul 11 Sunete ºi muzicã ........................................................313Sunete ............................................................................................ 313
Încãrcarea sunetelor ............................................................ 314Ascultã cu atenþie - redarea sunetelor ................................. 316
Muzicã ............................................................................................ 330Canale ºi PlayMusic() .......................................................... 330Niþicã zãpãcealã dã canale .................................................. 331
Rezumat ......................................................................................... 335
Capitolul 12 Inteligenþa artificialã ..................................................337Numere aleatoare .......................................................................... 337
Crearea unui temporizator cu funcþia MilliSecs() ................ 342Vânãtoarea ºi evitarea ................................................................... 349
Vânãtoarea .......................................................................... 349
Evitarea................................................................................ 354Rezumat ......................................................................................... 356
Capitolul 13 Ultima frontierã: Invaderz!!! ......................................359Sã-i dãm bãtaie: planificarea jocului .............................................. 359Constante, funcþii ºi tipuri ale jocului Invaderz!!!............................ 362Cum se joacã Invaderz!!! ............................................................... 366Epilog ............................................................................................. 368
PARTEA A IV-A: ANEXE............................................. 371
Anexa A Referinþa codurilor de scanare .................................373
Anexa B Legãturi (link-uri) utile ...............................................379Link-uri pentru BlitzBasic ............................................................... 379Link-uri generale legate de programarea jocurilor ......................... 380
Anexa C Ce se aflã pe CD .........................................................381Source ............................................................................................ 382Art ................................................................................................... 382
Sounds ........................................................................................... 382Games............................................................................................ 382Programs ....................................................................................... 383
Index ............................................................................384
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 8/10
INTRODUCERE
Hei, salut, cititorule. Mersi cã mi-ai cumpãrat cartea. Îþi sunt cu adevãratrecunoscãtor pentru asta.
Ce este programarea? Programarea, dupã definiþia din Programming.com, este „un setde instrucþiuni codate care permite unei maºini, mai ales unui calculator, sã efectueze osuccesiune doritã de operaþii“. Cu alte cuvinte, programarea îþi permite sã-þi faci calculatorulsã facã ceea ce vrei tu sã facã. Programarea se foloseºte în toate aspectele legate decalculator, dar existã diferite tipuri de programare. În aceastã carte vom vorbi despre
programarea jocurilor .Programarea jocurilor este foarte diferitã de toate celelalte tipuri de programare. Când
îþi porneºti calculatorul, vezi deseori programe statice, care stau locului ºi aºteaptã sã faciceva. Jocurile, nu. Jocurile sunt mereu active ºi n-au nevoie ca jucãtorul sã întreprindãvreo acþiune ca sã le menþinã „în funcþiune“.
Sigur, asta înseamnã cumva cã programarea jocurilor este niþel mai durã decât altestiluri de programare? Da ºi nu. Deºi uneori programarea jocurilor poate fi dificilã, carteade faþã se strãduieºte sã transforme dificultatea în a doua naturã. Vom folosi un limbaj deprogramare numit BASIC, care, aºa cum probabil îþi imaginezi, este destul de… elementar(în limba englezã basic).
Ce conþine cartea?Aceastã carte se doreºte a fi un ghid care sã înveþe pe orice începãtor sã proiecteze ºi
sã dezvolte jocuri. În carte veþi gãsi o sumedenie de informaþii, toate scrise cu scopul de avã ajuta sã vã atingeþi scopul de a crea un joc. Fiecare capitol se bazeazã pe capitoleleanterioare ºi face cartea sã semene cu o scarã - o urci pas cu pas. Ultimul capitol te ajutãsã-þi foloseºti toate cunoºtinþele ajunse la punctul culminant pentru producþia unui jocfinal.
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 9/10
IntroducereXII
Partea I discutã despre limbajul BlitzPlus. În acest interval, nu vom vorbi despreprogramele grafice, ci vom folosi texte pentru a scoate în evidenþã punctele de reper alelimbajului.
Partea a II-a oferã cititorului toate noþiunile privind grafica jocurilor. Gãsiþi aiciinformaþii precum modificarea culorilor, încãrcarea ºi afiºarea imaginilor, crearea de
fundaluri derulante ºi altele asemenea.Partea a III-a examineazã alte aspecte legate de programarea jocurilor. Cititorul poate
învãþa sã utilizeze datele introduse de la tastaturã, sunetele ºi muzica, dupã cum poate lua în calcul inteligenþa artificialã. De asemenea, aceastã parte conþine jocul final spre a cãruirealizare tinde întreaga carte.
Partea a IV-a conþine toate anexele cãrþii. Vei descoperi toate codurile de scanare(pentru manipularea intrãrilor), o listã a site-urilor Web unde îþi poþi aprofunda cunoºtinþele,precum ºi conþinutul CD-ului.
Cine eºti tu?Cred cã poþi sã rãspunzi la întrebarea asta mai bine decât mine, dar stai sã-þi spun ce
anume caut eu la un cititor. Mai întâi, bãnuiesc cã eºti fie un adolescent interesat înprogramarea jocurilor, fie un pãrinte interesat ca odrasla sã înveþe programarea jocurilor.Cam la asta se reduce totul: interesul. Cartea nu este gânditã sã fie dificilã. Ea îl ajutã pecititor sã pãtrundã în lumea programãrii jocurilor.
Cerinþele sunt literalmente foarte reduse. Tot ce-þi trebuie sunt cunoºtinþe elementarede matematicã, precum adunarea, scãderea, înmulþirea ºi împãrþirea. Dacã stãpâneºti acestetehnici, eºti practic pregãtit! De asemenea, aº sugera cititorului sã cearã ajutorul pãrintelui
ori de câte ori este nevoie. Vom folosi unele noþiuni rudimentare de algebrã, dar cazurilesunt rare ºi reduse ca numãr, deci n-ar trebui sã fie greu de înþeles.
Nu trebuie sã ai alte noþiuni de limbaje de programare. Nu cã nu þi-ar fi de folos dacãle ai, desigur. Dacã ºtii alte limbaje, ai ce învãþa ºi din aceastã carte. DarProgramarea
jocurilor pentru adolescenþi permite însuºirea noþiunilor de programare a jocurilor, alãturide abilitatea de implementare propriu-zisã a jocurilor.
Dacã eºti pãrintele unui copil care vrea sã înveþe programare, asta este cartea de careai nevoie. Programarea în general este un subiect lung ºi plictisitor, dar programarea jocurilor
îi permite copilului tãu sã înveþe lucruri distractive. Ajutã-þi copilul la programare în timpce el sau ea parcurge cartea. Nu numai cã veþi învãþa amândoi programare, dar, cine ºtie?poate cã astfel se va întãri legãtura dintre pãrinte ºi copil (asta vine de la psihologul dinmine).
7/24/2019 Programarea Jocurilor Pentru Adolescenti
http://slidepdf.com/reader/full/programarea-jocurilor-pentru-adolescenti 10/10
Introducere
Cine sunt eu?
Salut la tot poporul! Eu sunt Maneesh Sethi, sunt student ºi motivul pentru care scriuaceastã carte este fiindcã am convingerea cã, fiind la rândul meu adolescent, aº fi cel maiindicat sã-i ajut pe alþi adolescenþi sã înveþe programare. Am început sã programez în
1999, în C ºi C++. Cu doi ani în urmã am descoperit BlitzPlus ºi de atunci îl studiez.BlitzPlus pare a fi metoda cea mai simplã pentru ca orice începãtor sã înceapã a scrie jocuri, ºi vreau sã-l ajut pe cititor sã avanseze cât mai rapid posibil. Site-ul Web al acesteicãrþi este situat la adresa www.maneeshsethi.com ºi îmi poþi trimite mesaje cu orice întrebãri(înainte sau dupã ce ai cumpãrat cartea) la [email protected]. Îmi place lanebunie sã primesc mesaje de e-mail!
Convenþii folosite în aceastã carte
Notã
Notele furnizeazã informaþii suplimentare referitoare la o caracteristicã, dezvoltã o idee privind cumtrebuie efectuatã o anumitã operaþie sau ilustreazã o chestie haioasã.
Atenþie
Acestea te avertizeazã cu privire la probleme potenþiale ºi-þi aratã ce sã nu faci.
Sugestie
Sugestiile oferã informaþii pertinente cu privire la o metodã mai bunã, mai rapidã sau mai uºoarã de a
face un anumit lucru.
Sã ne pregãtim de dans…
Dacã tot mai rãsfoieºti cartea aceasta la librãrie, acum e momentul sã o iei acasã. Ceide la librãrie ar mai fericiþi dacã mai întâi ai cumpãra-o (ca ºi mine, de altfel!).
Prima parte îþi prezintã rapid toate detaliile limbajului de programare BlitzPlus.ªi uite-aºa începem…