Programarea Jocurilor in Visual Basic

16
iv MULÞUMIRI C artea de faþã n-ar fi fost posibilã fãrã efortul susþinut al redactorilor, artiºtilor, corectorilor, oamenilor din marketing, indexatorilor, specialiºtilor în machetare ºi managerilor de la Premier Press (Course PTR). Le mulþumesc tuturor celor de la Premier Press and Argosy Publishing pentru munca lor excepþionalã: Mitzi Koontz, Scott Harris, Jenny Davidson, Brandon Penticuff, Emi Smith, Stacy Hiquet, Andy Shafran, Sarah O’Donnell, Heather Hurley, Mark Garvey, Heather Talbot, Kristin Eisenzopf, Jordan Casey, Elizabeth Furbish, Mike Tanamachi, Tonya Cupp, Kate Binder, Maureen Sheperd ºi Jan Crocker. Îi mulþumesc lui Maneesh Sethi pentru revizuirea tehnicã a manuscrisului. Cred cã, mulþumitã eforturilor lor, veþi gãsi cartea aceasta de calitate ºi pe placul vostru. Mulþumesc de asemenea minunatei mele soþii Jennifer ºi puºtilor noºtri gãlãgioºi, Jeremiah ºi Kayleigh, ca ºi celui de-al treilea, care se aflã pe drum. Mulþumitã vouã, toate aspectele vieþii noastre împreunã înseamnã o fericire ºi este un privilegiu sã-mi împart viaþa cu voi. Îi sunt extrem de recunoscãtor lui Reiner Prokein pentru folosirea extraordinarei lui artwork de la Reiner’s Tilesets (http://www.reinerstileset.de). Recunosc cu mâna pe inimã cã nici mãcar n-aº fi încercat sã creez RPG-ul din aceastã carte fãrã sã fi dispus de talentul incredibil al lui Reiner. Artworkul este totul! Îþi mulþumesc pentru cã oferi lumii sprite-urile ºi tile-urile tale de înaltã calitate. Adresez de asemenea mulþumiri ºi aprecieri lui Robin B., pentru excelentul lui editor de niveluri, Mappy (http://www.tilemap.co.uk). În plus, îi mulþumesc lui Daniel Sczepansky de la Cosmigo, pentru Pro Motion (http://www.cosmigo.com), puternicul software de animaþie pentru sprite-uri utilizat în aceastã carte.

description

it.

Transcript of Programarea Jocurilor in Visual Basic

Page 1: Programarea Jocurilor in Visual Basic

iv

MULÞUMIRI

Cartea de faþã n-ar fi fost posibilã fãrã efortul susþinut al redactorilor, artiºtilor,corectorilor, oamenilor din marketing, indexatorilor, specialiºtilor în machetare ºimanagerilor de la Premier Press (Course PTR). Le mulþumesc tuturor celor de la

Premier Press and Argosy Publishing pentru munca lor excepþionalã: Mitzi Koontz, ScottHarris, Jenny Davidson, Brandon Penticuff, Emi Smith, Stacy Hiquet, Andy Shafran, SarahO’Donnell, Heather Hurley, Mark Garvey, Heather Talbot, Kristin Eisenzopf, Jordan Casey,Elizabeth Furbish, Mike Tanamachi, Tonya Cupp, Kate Binder, Maureen Sheperd ºi JanCrocker. Îi mulþumesc lui Maneesh Sethi pentru revizuirea tehnicã a manuscrisului. Credcã, mulþumitã eforturilor lor, veþi gãsi cartea aceasta de calitate ºi pe placul vostru.

Mulþumesc de asemenea minunatei mele soþii Jennifer ºi puºtilor noºtri gãlãgioºi,Jeremiah ºi Kayleigh, ca ºi celui de-al treilea, care se aflã pe drum. Mulþumitã vouã, toateaspectele vieþii noastre împreunã înseamnã o fericire ºi este un privilegiu sã-mi împartviaþa cu voi.

Îi sunt extrem de recunoscãtor lui Reiner Prokein pentru folosirea extraordinarei luiartwork de la Reiner’s Tilesets (http://www.reinerstileset.de). Recunosc cu mâna pe inimãcã nici mãcar n-aº fi încercat sã creez RPG-ul din aceastã carte fãrã sã fi dispus de talentulincredibil al lui Reiner. Artworkul este totul! Îþi mulþumesc pentru cã oferi lumii sprite-urileºi tile-urile tale de înaltã calitate.

Adresez de asemenea mulþumiri ºi aprecieri lui Robin B., pentru excelentul lui editorde niveluri, Mappy (http://www.tilemap.co.uk). În plus, îi mulþumesc lui Daniel Sczepanskyde la Cosmigo, pentru Pro Motion (http://www.cosmigo.com), puternicul software deanimaþie pentru sprite-uri utilizat în aceastã carte.

Page 2: Programarea Jocurilor in Visual Basic

v

DESPRE AUTOR

JONATHAN S. HARBOUR este de 17 ani jucãtor înrãit ºi programator, începând cuprimele sisteme: Commodore PET, Apple II ºi Tandy 1000. A absolvit facultatea de sistemeinformaþionale de calcul ºi-i place sã programeze în diverse limbaje, printre care C, C++ ºiVB. Are experienþã cu mai multe platforme, inclusiv Windows, Linux, PocketPC ºi GameBoy Advance. Jonathan a scris nouã cãrþi despre programare de jocuri, dezvoltare aplicaþii,programare pentru console, programare inter-platforme ºi modding pentru console. Areun site Web dedicat programãrii de jocuri la adresa http://www.jharbour.com.

Page 3: Programarea Jocurilor in Visual Basic

vi

CUPRINS PE SCURT

Introducere................................................................................................. xvii

PARTEA I: INTRODUCERE 1

CAPITOLUL 1

Visual Basic .................................................................................................. 3

CAPITOLUL 2

Primul program DirectX .............................................................................. 23

CAPITOLUL 3

Proiectarea jocului ...................................................................................... 39

PARTEA A II-A: CREAREA LUMII INTERACTIVE A JOCULUI 63

CAPITOLUL 4

Tehnici de bazã: desenarea imaginilor bitmap ........................................... 65

CAPITOLUL 5

Editarea nivelurilor cu Mappy ..................................................................... 79

CAPITOLUL 6

Fundamentele derulãrii bazate pe tile-uri .................................................... 99

CAPITOLUL 7

Derularea lumii jocului .............................................................................. 113

Page 4: Programarea Jocurilor in Visual Basic

Cuprins pe scurt vii

CAPITOLUL 8

Tehnici avansate de derulare ................................................................... 133

PARTEA A III-A: PERSONAJUL JUCÃTORULUI (PJ) 157

CAPITOLUL 9

Tehnicã de bazã: desenarea sprite-urilor ................................................. 159

CAPITOLUL 10

Tehnicã de bazã: animarea sprite-urilor ................................................... 183

CAPITOLUL 11

Tehnicã de bazã: datele introduse de utilizator ........................................ 201

CAPITOLUL 12

Plimbare prin lumea jocului ....................................................................... 231

CAPITOLUL 13

Tehnicã de bazã: desenarea textului ........................................................ 255

CAPITOLUL 14

Tehnicã de bazã: detectarea coliziunilor .................................................. 261

PARTEA A IV-A: PERSONAJELE NON-JUCÃTOR (PNJ) 269

CAPITOLUL 15

Crearea claselor de personaje .................................................................. 271

CAPITOLUL 16

Adãugarea de PNJ-uri în lumea jocului .................................................... 279

CAPITOLUL 17

Dialogul cu PNJ-uri ................................................................................... 293

CAPITOLUL 18

Angajarea în luptã cu PNJ-uri ................................................................... 303

PARTEA A V-A: TUºELE DE FINISARE 327

CAPITOLUL 19

Adãugarea decorurilor în lumea jocului .................................................... 329

Page 5: Programarea Jocurilor in Visual Basic

Cuprins pe scurtviii

CAPITOLUL 20

Tehnicã de bazã: efecte sonore ............................................................... 341

CAPITOLUL 21

Tehnicã de bazã: muzica de fundal .......................................................... 349

ANEXÃ

Utilizarea CD-ROM-ului ............................................................................ 357

Index ............................................................................................................... 359

Page 6: Programarea Jocurilor in Visual Basic

ix

CUPRINS

Introducere .............................................................................. xviiVisual Basic ºi DirectX .................................................................... xviiRitm ºi experienþã ........................................................................... xviiCerinþe............................................................................................ xviiiVersiunea de Visual Basic ............................................................. xviiiVersiunea de DirectX ..................................................................... xviiiContactarea autorului ....................................................................... xixConvenþii utilizate în carte ................................................................ xix

PARTEA I: INTRODUCERE 1

Capitolul 1 Visual Basic ....................................................................3Programarea jocurilor ........................................................................ 3

Întâi lucraþi, apoi puneþi întrebãri ............................................. 4Lãsaþi-vã creativitatea sã se desfãºoare ................................. 5Creativitate, talent ºi muncã susþinutã ..................................... 5Cerul este unica limitã ............................................................. 6Învãþaþi meºteºugul .................................................................. 7

DirectX ............................................................................................... 8Adãugarea unei referiri la biblioteca de tipuri DirectX ........... 10Testarea referirii DirectX........................................................ 10Sunteþi gata sã scrieþi cod? ................................................... 14

Page 7: Programarea Jocurilor in Visual Basic

Cuprinsx

Prezentarea proiectului jocului ......................................................... 14Construirea unui RPG ........................................................... 14Story-ul .................................................................................. 15„Bunii“ ºi „rãii“ ........................................................................ 16Aventurã sau mãcel în catacombe? ...................................... 16Descrierea personajului jucãtorului ....................................... 18

Rezumat ........................................................................................... 21

Capitolul 2 Primul program DirectX............................................... 23Iniþializarea DirectX .......................................................................... 23

Crearea unui proiect nou ....................................................... 24Obiectele DirectX ºi Direct3D ................................................ 24Crearea dispozitivului primar ................................................. 26Programul InitDirectX ................................................................................... 28

Încãrcarea ºi afiºarea unui fiºier bitmap .......................................... 30Noul proiect LoadBitmap ....................................................... 30Variabile ................................................................................. 31Pornirea programului ............................................................. 33Iniþializarea Direct3D ............................................................. 34Încãrcarea unui fiºier bitmap ................................................. 35Desenarea imaginii bitmap .................................................... 37

Nivelul urmãtor ................................................................................. 38

Capitolul 3 Proiectarea jocului ....................................................... 39Firul narativ bazat pe misiune .......................................................... 39Proiectarea lumii RPG ..................................................................... 40

Harta lumii .............................................................................. 41Regiunile ................................................................................ 44

Personajul jucãtorului (PJ) ............................................................... 49Atributele personajului ........................................................... 51Starea personajului ................................................................ 52Clasele de personaje ............................................................. 54

Personajele non-jucãtor (PNJ) ......................................................... 59Arme ºi armuri .................................................................................. 59Magia ............................................................................................... 60Comunicaþiile ................................................................................... 61Luptele ............................................................................................. 61Nivelul urmãtor ................................................................................. 61

Page 8: Programarea Jocurilor in Visual Basic

Cuprins xi

PARTEA A II-A: CREAREA LUMII INTERACTIVE A JOCULUI 63

Capitolul 4 Tehnici de bazã: desenarea imaginilor bitmap ......... 65Înþelegerea imaginilor bitmap ºi a tile-urilor ..................................... 65

Ce este un tile? ...................................................................... 65Drumul din tile-uri .................................................................. 67

Desenarea unei porþiuni dintr-o imagine bitmap sursã .................... 68Luarea unui tile ...................................................................... 68Lumea este un loc mare ........................................................ 70Restul programului DrawTile ................................................. 72

Nivelul urmãtor ................................................................................. 78

Capitolul 5 Editarea nivelurilor cu Mappy..................................... 79Crearea lumii jocului ........................................................................ 79

Instalarea programului Mappy ............................................... 80Crearea unei hãrþi noi ............................................................ 80Importarea tile-urilor sursã ..................................................... 83Editarea hãrþii de tile-uri ......................................................... 86Salvarea fiºierului hartã ca FMP ........................................... 90Salvarea fiºierului hartã ca text ............................................. 91

Tehnici avansate de editare a hãrþii ................................................. 93Utilizarea straturilor ................................................................ 94

Nivelul urmãtor ................................................................................. 98

Capitolul 6 Fundamentele derulãrii bazate pe tile-uri .................. 99Introducere în derulare ..................................................................... 99O vedere limitatã asupra lumii ....................................................... 101

Derularea unei imagini bitmap mari generate de Mappy ..... 103Crearea programului ScrollScreen ...................................... 103

Nivelul urmãtor ............................................................................... 111

Capitolul 7 Derularea lumii jocului .............................................. 113Construirea imaginii din tile-uri în timpul execuþiei ........................ 113

Crearea unui fundal bazat pe tile-uri ................................... 114Lucrul profesionist cu tile-uri ................................................ 115Utilizarea datelor tile-urilor ................................................... 116

Convertirea datelor hãrþii într-o matrice ......................................... 119Desenarea tile-urilor în lumea jocului ............................................ 120

Construirea lumii jocului ...................................................... 121„Pardosirea” lumii jocului ..................................................... 122

Scrierea programului TileScroll ..................................................... 123

Page 9: Programarea Jocurilor in Visual Basic

Cuprinsxii

Reutilizarea codului ............................................................. 124Codul sursã TileScroll ......................................................... 125

Nivelul urmãtor ............................................................................... 131

Capitolul 8 Tehnici avansate de derulare ................................... 133Derularea directã a tile-urilor parþiale ............................................. 133

Codarea subrutinei de derulare a tile-urilor parþiale ............ 138Încãrcarea unui fiºier Mappy exportat ............................................ 143Programul ScrollWorld ................................................................... 145

Alinierea tile-urilor la bufferul de derulare ............................ 146Codul sursã pentru ScrollWorld ........................................... 149Adãugarea fiºierului Globals.bas ......................................... 149Adãugarea fiºierului Direct3D.bas ....................................... 151Adãugarea fiºierului TileScroller.bas ................................... 152Codul sursã principal pentru ScrollWorld ............................ 153

Nivelul urmãtor ............................................................................... 155

PARTEA A III-A: PERSONAJUL JUCÃTORULUI (PJ) 157

Capitolul 9 Tehnicã de bazã: desenarea sprite-urilor ................159Prezentarea conceptului de sprite ................................................. 160

Realizarea sprite-urilor cu Direct3D .................................... 160Desenarea sprite-urilor cu Direct3D .................................... 162

Crearea de sprite-uri Direct3D ....................................................... 163Încãrcarea unei texturi ......................................................... 164Utilizarea clasei D3DXSprite ................................................................... 166Structura rutinei de tratare a sprite-ului ............................... 166Iniþializarea unui sprite ......................................................... 168

Desenarea sprite-urilor Direct3D ................................................... 169Randarea în 2D ................................................................... 170Poziþionarea, scalarea ºi rotirea sprite-ului ......................... 170Subrutina reutilizabilã SpriteDraw ....................................... 171

Programul SpriteTest ..................................................................... 172Crearea proiectului .............................................................. 173Adãugarea fiºierului Sprite.bas............................................ 174Codul sursã SpriteTest ........................................................ 176

Amuzamente cu sprite-uri .............................................................. 179Translucenþa sprite-ului ....................................................... 179Scalarea sprite-urilor ........................................................... 180

Nivelul urmãtor ............................................................................... 181

Page 10: Programarea Jocurilor in Visual Basic

Cuprins xiii

Capitolul 10 Tehnicã de bazã: animarea sprite-urilor .................. 183Miºcarea sprite-urilor ..................................................................... 184Animarea sprite-urilor .................................................................... 186

Crearea sprite-urilor animate ............................................... 186Înþelegerea secvenþelor de animaþie .................................... 189

Programul AnimateSprite ............................................................... 192Crearea noului proiect ......................................................... 193Codul sursã AnimateSprite .................................................. 193

Nivelul urmãtor ............................................................................... 199

Capitolul 11 Tehnicã de bazã: datele introduse de utilizator ...... 201Alegerea celui mai bun dispozitiv de intrare pentru joc ................. 201

Suportul DirectInput ............................................................. 202Intrãrile de la tastaturã ......................................................... 203Intrãrile de la mouse ............................................................ 204Intrãrile de la joystick ........................................................... 204Cãutarea dispozitivelor de intrare ........................................ 204

Programarea tastaturii ................................................................... 205Detectarea evenimentelor de tastaturã cu DirectInput ........ 205Testarea intrãrilor de la tastaturã ......................................... 206

Programarea mouse-ului ............................................................... 212Miºcarea mouse-ului ........................................................... 213Butoanele mouse-ului .......................................................... 214Testarea datelor introduse de la mouse .............................. 215

Programarea joystick-ului .............................................................. 219Folosirea DirectInput pentru programarea joystick-ului ....... 220Testarea intrãrii de la joystick .............................................. 222

Nivelul urmãtor ............................................................................... 229

Capitolul 12 Plimbare prin lumea jocului ...................................... 231Maparea lumii jocului ..................................................................... 231

Refamiliarizare cu harta Irlandei .......................................... 232Digitizarea lumii reale .......................................................... 232

Încãrcarea unui fiºier binar Mappy ................................................. 237Exportarea în binar .............................................................. 237Încãrcarea datelor binare în Visual Basic ............................ 239

Artwork-ul personajului animat ...................................................... 241Programul WalkAbout .................................................................... 242

Crearea proiectului .............................................................. 245Adãugarea fiºierelor de suport pentru DirectX .................... 246

Page 11: Programarea Jocurilor in Visual Basic

Cuprinsxiv

Adãugarea fiºierului Globals.bas ......................................... 246Adãugarea fiºierului Game.bas ........................................... 247

Nivelul urmãtor ............................................................................... 253

Capitolul 13 Tehnicã de bazã: desenarea textului ....................... 255Crearea unui font bitmap ............................................................... 255Tipãrirea fontului bitmap ................................................................ 256

Subrutinele pentru tipãrirea textului ..................................... 256Programul PrintText ............................................................. 257

Nivelul urmãtor ............................................................................... 260

Capitolul 14 Tehnicã de bazã: detectarea coliziunilor .................261Reacþia faþã de obiecte solide ........................................................ 261

Intersecþia dreptunghiurilor .................................................. 262Scrierea unei funcþii coliziune reutilizabilã ........................... 262Þinerea evidenþei tile-urilor „rele” ......................................... 263Controlarea coliziunilor între tile-uri ..................................... 264Revizuirea afiºãrii datelor de derulare ................................. 265Programul CollisionTest ...................................................... 266

Nivelul urmãtor ............................................................................... 267

PARTEA A IV-A: PERSONAJELE NON-JUCÃTOR (PNJ) 269

Capitolul 15 Crearea claselor de personaje.................................. 271Clasele de personaje ºi atributele lor ............................................. 271

Câºtigarea de experienþã ºi trecerea la nivelurisuperioare ...................................................................... 272

Clasele personaje de bazã .................................................. 273Utilizarea claselor de personaje în joc ........................................... 275

Fiºiere de date pentru personaje ......................................... 275Tipul de date al clasei de personaj ...................................... 275Încãrcarea ºi salvarea fiºierelor de date binare pentru

personaje ....................................................................... 276Programul editor de personaje ............................................ 277

Nivelul urmãtor ............................................................................... 278

Capitolul 16 Adãugarea de PNJ-uri în lumea jocului ................... 279Prezentarea PNJ-urilor .................................................................. 280

Poziþia de start ºi domeniul de deplasare ............................ 281Un engine de stãri simplu .................................................... 281PNJ-uri bune ºi rele ............................................................. 281

Page 12: Programarea Jocurilor in Visual Basic

Cuprins xv

Crearea de PNJ-uri refolosibile ...................................................... 282Tipurile de date ºi matricele particularizate PNJ ................. 282Iniþializarea PNJ-urilor ......................................................... 283Deplasarea PNJ-urilor ......................................................... 285Stabilirea unei destinaþii aleatorii ......................................... 287Desenarea PNJ-urilor .......................................................... 288

Jocul nou ºi îmbunãtãþit ................................................................. 290Nivelul urmãtor ............................................................................... 290

Capitolul 17 Dialogul cu PNJ-uri ....................................................293Stãri comportamentale ................................................................... 293

Întâlnirea cu jucãtorul .......................................................... 294Dialogul cu jucãtorul ............................................................ 295

Modificarea proiectului Celtic Crusader ......................................... 297Stãri noi ................................................................................ 297Întâlnirea cu jucãtorul .......................................................... 298Desenarea bazatã pe stare ................................................. 300Întâlnirea cu jucãtorul .......................................................... 300Dialogul cu jucãtorul ............................................................ 301

Nivelul urmãtor ............................................................................... 301

Capitolul 18 Angajarea în luptã cu PNJ-uri ................................... 303Sistemul de lupte ........................................................................... 303

Lupta bazatã pe stare .......................................................... 304Moartea jucãtorului .............................................................. 307

Implementarea sistemului de lupte ................................................ 307Animaþiile luptelor ................................................................ 307Skeleton Knight.................................................................... 309Angajarea în luptã ................................................................ 311Managementul stãrii jucãtorului ........................................... 314Managementul stãrilor PNJ ................................................. 316

Notã despre modularizarea jocului ................................................ 325Nivelul urmãtor ............................................................................... 325

PARTEA A V-A: TUºELE DE FINISARE 327

Capitolul 19 Adãugarea decorurilor în lumea jocului .................. 329Lumea este un pustiu ..................................................................... 329Inserarea de decor aleatoriu .......................................................... 330

Matricele decor .................................................................... 331

Page 13: Programarea Jocurilor in Visual Basic

Cuprinsxvi

Încãrcarea graficii decor ...................................................... 331Modificarea buclei jocului .................................................... 332Þinerea jucãtorului în afara decorului .................................. 333Desenarea sprite-urilor decor .............................................. 335

Noi animaþii de personaje .............................................................. 336Animaþii Warrior Hero noi .................................................... 336Animaþii Black Knight noi ..................................................... 337

Nivelul urmãtor ............................................................................... 338

Capitolul 20 Tehnicã de bazã: efecte sonore ............................... 341Prezentarea bibliotecii DirectX Audio ............................................ 341

Accesarea bibliotecii DirectSound ....................................... 342Folosirea DirectSound ......................................................... 342

Programarea DirectSound ............................................................. 343Sunetele ambientale ............................................................ 343Crearea obiectului DirectSound........................................... 343Încãrcarea unui fiºier WAV .................................................. 344Mixarea de fiºiere .WAV cu DirectSound ............................ 344Programul SoundTest .......................................................... 344

Nivelul urmãtor ............................................................................... 347

Capitolul 21 Tehnicã de bazã: muzica de fundal .......................... 349Cãile audio DirectMusic ................................................................. 349

Muzicã MIDI sau .WAV........................................................ 350Redarea muzicii de fundal ................................................... 350Programul MusicTest ........................................................... 350

Nivelul urmãtor ............................................................................... 355

Anexã Utilizarea CD-ROM-ului .............................................. 357

Index...................................................................................................... 359

Page 14: Programarea Jocurilor in Visual Basic

xvii

INTRODUCERE

Bun venit! Cartea aceasta vã învaþã cum sã vã creaþi propriul RPG (role-playinggame), folosind Visual Basic ºi DirectX. Vã voi arãta, pas cu pas, cum sã construiþifiecare parte a jocului, utilizând componente DirectX, ca Direct3D. Dacã apreciaþi

cã RPG-urile sunt distractiv de jucat, aºteptaþi pânã veþi începe sã lucraþi la propriul vostrujoc! Construirea unui RPG este mult mai interesantã decât jucarea lui, deoarece deþineþicontrolul complet al lumii RPG-ului ºi vã puteþi lãsa frâu liber imaginaþiei pentru a creaaventuri de care sã se bucure ºi alþii.

Visual Basic ºi DirectX

Înainte de a ajunge în punctul în care sã puteþi concepe o aventurã ºi construi un RPGcu Visual Basic, trebuie sã învãþaþi limbajul ºi sã înþelegeþi DirectX. Þelul meu este sã vãînvãþ doar ceea ce trebuie sã ºtiþi în aceastã privinþã, fãrã sã intru în detalii. Veþi afla cetrebuie sã cunoaºteþi pentru a construi un RPG ºi nimic mai mult. În loc sã vã scrieþipropriul RPG cu Visual Basic, puteþi opta sã folosiþi un produs ca RPG Maker; desigureste o alternativã bunã, dar n-ar fi mai interesant sã deþineþi control complet asupra feluluiîn care funcþioneazã jocul? Utilizând RPG Maker puteþi cu certitudine sã creaþi multeRPG-uri complete, concepute de voi în timpul care ar fi necesar sã construiþi un singurRPG pornind de la zero ºi fãcând toatã programarea. Dar dupã ce vã veþi scrie propriulcod, veþi cãpãta o abilitate deloc neglijabilã – programarea de jocuri! În plus, veþi deþinecontrol creativ complet asupra felului cum opereazã jocul.

Ritm ºi experienþã

Cartea aceasta trebuie parcursã ca un hobby, fãrã presiuni din exterior ºi fãrã obiectivelimitate, deoarece scopul principal este de a vã amuza în timp ce învãþaþi cum se programeazã

Page 15: Programarea Jocurilor in Visual Basic

Introducerexviii

jocurile. Nu mi se pare deloc distractiv sã introduceþi listinguri de cod sursã copiate dintr-ocarte, aºa cã nu vã voi cere sã o faceþi chiar în toate capitolele. În loc de aºa ceva, veþiînvãþa sã scrieþi programe scurte care sã demonstreze subiectele principale din fiecarecapitol ºi, cu timpul, veþi câºtiga experienþã. În tot ceea ce urmeazã nu se cere experienþã,deoarece eu cred cu fermitate cã repetiþia – practica – este modul cel mai bun de a învãþa,nu teoria ºi memorarea.

Cerinþe

Scopul cãrþii este de a vã învãþa cum sã creaþi un RPG complex, pornind de la zero.Anterior trebuie sã cunoaºteþi programarea în limbajul Visual Basic, fiindcã nu-mi voipierde timpul sã v-o explic. Programarea unui RPG este o provocare serioasã, chiar înaintede a þine seama ºi de impactul lucrului cu DirectX. În plus, dimensiunea redusã a cãrþii defaþã mã împiedicã sã fac altceva decât sã mã concentrez asupra acelui þel principal. Dacãnu sunteþi cel puþin oarecum familiarizat cu Visual Basic, vã recomand stãruitor sã luaþimai întâi un manual despre aceste limbaj ºi abia apoi sã citiþi cartea aceasta. (Un exemplubun este Visual Basic Programming for the Absolute Beginner – Programarea în Visual

Basic pentru începãtori de Michael Vine.) În caz contrar, probabil cã vã veþi pierde chiarîn primele capitole.

Versiunea de Visual Basic

Cartea aceasta se focalizeazã exclusiv asupra limbajului Visual Basic 6.0. Nu existãnici un fel de suport pentru Visual Basic .NET, care este un produs complet diferit de 6.0.Puteþi utiliza orice versiune de Visual Basic 6.0, inclusiv Learning Edition, ca sã rulaþiprogramele prezentate aici. Dacã nu aveþi versiunea 6.0, puteþi utiliza ºi Visual Basic 5.0,deoarece compilatorul ambelor versiuni este aproape acelaºi. Eu am testat codul peversiunile 5.0 ºi 6.0 ºi am constatat cã funcþioneazã.

Versiunea de DirectX

Cartea aceasta utilizeazã DirectX 8.0, deoarece este cea mai recentã versiune de DirectXacceptatã de Visual Basic 6.0. Ar fi exagerat sã spunem cã este o limitare, fiindcã DirectX8 este o bibliotecã de jocuri completã ºi puternicã, cu suport 3D foarte avansat – uneledintre caracteristicile sale nici mãcar nu sunt utilizate în aceastã carte. În cartea de faþã, euvã voi învãþa cum sã construiþi un RPG complet bazat pe 2D. Nu sunt necesare nici un felde caracteristici avansate (cum sunt cele din DirectX 9). Programele mostrã folosescexclusiv suprafeþe ºi texturi Direct3D.

Page 16: Programarea Jocurilor in Visual Basic

Introducere xix

Contactarea autorului

La adresa http://www.jharbour.com, întreþin un site Web care conþine informaþii despreaceastã carte ce vã pot fi utile. Tot acolo existã un forum online activ, unde puteþi sãpostaþi întrebãri ºi sã vã þineþi la curent cu cele mai recente discuþii despre Visual Basic6.0, discutând cu alþi programatori ºi fani VB. Dacã aveþi probleme în parcurgerea cãrþii,vizitaþi-mi site-ul sau scrieþi-mi direct, pe adresa [email protected].

Convenþii utilizate în carte

Pentru a evidenþia pasaje importante, în carte sunt utilizate urmãtoarele stiluri. Pealocuri veþi gãsi casete de text Notã, Sfat ºi Atenþie.

Notã

Aºa aratã o notã. Notele sunt informaþii suplimentare asociate textului.

Sfat

Aºa aratã un sfat. Sfaturile vã oferã recomandãri în tutorialul curent.

Atenþie

Aºa aratã o atenþionare. Atenþionãrile oferã îndrumãri despre ce trebuie fãcut ºi ce nu trebuie fãcutîntr-o situaþie datã.