Learning C# by programming games:
Gespeichert in:
Beteiligte Personen: | , , |
---|---|
Format: | Buch |
Sprache: | Englisch |
Veröffentlicht: |
Berlin [u.a.]
Springer
2013
|
Schlagwörter: | |
Links: | http://deposit.dnb.de/cgi-bin/dokserv?id=4242496&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=025956502&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
Umfang: | XXII, 443 S. Ill. |
ISBN: | 9783642365799 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV040978454 | ||
003 | DE-604 | ||
005 | 20170720 | ||
007 | t| | ||
008 | 130502s2013 gw a||| |||| 00||| eng d | ||
015 | |a 13,N05 |2 dnb | ||
016 | 7 | |a 1030170053 |2 DE-101 | |
020 | |a 9783642365799 |c Gb. : ca. EUR 48.10 (DE) (freier Pr.), ca. EUR 49.45 (AT) (freier Pr.), ca. sfr 60.00 (freier Pr.) |9 978-3-642-36579-9 | ||
024 | 3 | |a 9783642365799 | |
028 | 5 | 2 | |a Best.-Nr.: 86133758 |
035 | |a (OCoLC)856797765 | ||
035 | |a (DE-599)DNB1030170053 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 0 | |a eng | |
044 | |a gw |c XA-DE-BE | ||
049 | |a DE-20 |a DE-91G |a DE-706 |a DE-83 |a DE-19 |a DE-859 |a DE-573 | ||
082 | 0 | |a 005.133 |2 22/ger | |
082 | 0 | |a 794.815133 |2 22/ger | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a ST 324 |0 (DE-625)143660: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 758f |2 stub | ||
084 | |a DAT 358f |2 stub | ||
100 | 1 | |a Egges, Arjan |e Verfasser |4 aut | |
245 | 1 | 0 | |a Learning C# by programming games |c Arjan Egges ; Jeroen D. Fokker ; Mark H. Overmars |
264 | 1 | |a Berlin [u.a.] |b Springer |c 2013 | |
300 | |a XXII, 443 S. |b Ill. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 0 | 7 | |a Computerspiel |0 (DE-588)4010457-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Programmierung |0 (DE-588)4076370-5 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a C sharp |0 (DE-588)4616843-6 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a C sharp |0 (DE-588)4616843-6 |D s |
689 | 0 | 1 | |a Computerspiel |0 (DE-588)4010457-6 |D s |
689 | 0 | 2 | |a Programmierung |0 (DE-588)4076370-5 |D s |
689 | 0 | |5 DE-604 | |
700 | 1 | |a Fokker, Jeroen D. |e Verfasser |4 aut | |
700 | 1 | |a Overmars, Mark H. |d 1958- |e Verfasser |0 (DE-588)1089271069 |4 aut | |
776 | 0 | 8 | |i Erscheint auch als |n Online-Ausgabe |z 978-3-642-36580-5 |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=4242496&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=025956502&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-025956502 |
Datensatz im Suchindex
DE-BY-TUM_call_number | 0102 DAT 358f 2013 A 4250 |
---|---|
DE-BY-TUM_katkey | 1936238 |
DE-BY-TUM_location | 01 |
DE-BY-TUM_media_number | 040080294577 |
_version_ | 1821933144007245824 |
adam_text | CONTENTS
PART I GETTING STARTED
1 BUILDING YOUR FIRST GAME APPLICATION 3
1.1 STRUCTURE OF THIS BOOK 3
1.2 GETTING AND INSTALLING THE TOOLS 4
1.3 CREATING YOUR FIRST GAME APPLICATION 4
1.4 RUNNING THE NEWLY CREATED PROJECT 5
1.5 PROJECTS AND SOLUTIONS 8
1.6 RUNNING THE EXAMPLES IN THIS BOOK 8
1.7 WHAT YOU HAVE LEARNED 9
2 PROGRAMMING 11
2.1 INTRODUCTION 11
2.2 COMPUTERS AND PROGRAMS 12
2.2.1 PROCESSOR AND MEMORY 12
2.2.2 PROGRAMS 13
2.3 PROGRAMMING LANGUAGES 13
2.3.1 THE EARLY DAYS: IMPERATIVE PROGRAMMING 14
2.3.2 PROCEDURAL PROGRAMMING: IMPERATIVE + PROCEDURES 15
2.3.3 OBJECT-ORIENTED PROGRAMMING: PROCEDURAL + OBJECTS ... 15
2.3.4 JAVA 16
2.3.5 C# 17
2.4 TRANSLATING A PROGRAM 18
2.4.1 ASSEMBLER 18
2.4.2 COMPILER 19
2.4.3 INTERPRETER 20
2.4.4 COMPILER + INTERPRETER 20
2.4.5 COMPILER + COMPILER 21
2.5 PROGRAMMING GAMES 22
2.5.1 GAMES ARE SPECIAL PROGRAMS 22
2.5.2 GAME ENGINES 22
XI
HTTP://D-NB.INFO/1030170053
XII CONTENTS
2.5.3 THE XNA GAME ENGINE 23
2.6 DEVELOPING GAMES 24
2.6.1 SMALL SCALE: EDIT-COMPILE-RUN 24
2.6.2 LARGE SCALE: DESIGN-SPECIFY-IMPLEMENT 24
2.7 WHAT YOU HAVE LEARNED 25
3 GAME PROGRAMMING BASICS 27
3.1 INTRODUCTION 27
3.2 BUILDING BLOCKS OF A GAME 27
3.2.1 THE GAME WORLD 27
3.2.2 THE GAME LOOP: UPDATING AND DRAWING 28
3.2.3 THE GAME LOOP IN XNA 29
3.3 THE STRUCTURE OF A PROGRAM 31
3.3.1 THE BASIC GAME APPLICATION IN MORE DETAIL 31
3.3.2 OTHER TYPES OF APPLICATIONS 32
3.3.3 A METHOD: A GROUP OF INSTRUCTIONS WITH A NAME 32
3.3.4 A CLASS: A GROUP OF METHODS WITH A NAME 33
3.3.5 SYNTAX DIAGRAMS 33
3.3.6 NAMESPACES 34
3.3.7 A COMPILATION UNIT: A GROUP OF CLASSES IN A TEXT FILE ... 35
3.3.8 RELYING ON OTHER CLASSES 35
3.3.9 SUBCLASSES: A SPECIAL VERSION OF ANOTHER CLASS 36
3.3.10 CALLING A METHOD 36
3.3.11 UPDATE AND DRAW 37
3.3.12 DIFFERENT KINDS OF METHODS 38
3.3.13 THE GRAPHICS DEVICE 38
3.4 PROGRAM LAYOUT 40
3.4.1 COMMENTS 40
3.4.2 LAYOUT 40
3.4.3 WHITESPACE AND INDENTATION 41
3.5 WHAT YOU HAVE LEARNED 41
4 CREATING A GAME WORLD 43
4.1 INTRODUCTION 43
4.2 BASIC TYPES AND VARIABLES 43
4.2.1 TYPES: DIFFERENT KINDS OF STRUCTURED INFORMATION 43
4.2.2 DECLARATION AND ASSIGNMENT OF VARIABLES 44
4.2.3 INSTRUCTIONS AND EXPRESSIONS 46
4.2.4 ARITHMETIC OPERATORS 46
4.2.5 PRIORITY OF OPERATORS 47
4.2.6 OTHER NUMERICAL TYPES 47
4.2.7 DECLARATION AND INITIALIZATION OF
CONST
VARIABLES 50
4.2.8 DISCOWORLD: A CHANGING BACKGROUND COLOR 50
4.2.9 SCOPE OF VARIABLES 54
4.2.10 SETTING THE BACKGROUND COLOR 54
4.3 MANAGING GAME ASSETS 55
CONTENTS XIII
4.3.1 INTRODUCTION 55
4.3.2 LOCATING SPRITES 55
4.3.3 LOADING SPRITES 56
4.3.4 DRAWING SPRITES 58
4.3.5 ADDING A BACKGROUND SPRITE 60
4.3.6 MUSIC AND SOUNDS 61
4.4 WHAT YOU HAVE LEARNED 62
PART II CREATING COLORFUL GAMES
5 KNOWING WHAT THE PLAYER IS DOING 65
5.1 INTRODUCTION 65
5.2 A SPRITE FOLLOWING THE MOUSE POINTER 65
5.2.1 RETRIEVING THE MOUSE POSITION 65
5.2.2 METHODS AND PROPERTIES 67
5.2.3 CHANGING THE ORIGIN OF A SPRITE 68
5.3 CLASSES, TYPES, AND OBJECTS 70
5.3.1 METHODS AND PROPERTIES CAN MANIPULATE AN OBJECT 71
5.3.2 A CLASS IS A BLUEPRINT FOR AN OBJECT 73
5.3.3 A CONSTRUCTOR DESCRIBES HOW AN OBJECT IS CREATED .... 74
5.3.4 THIS: THE OBJECT WE ARE CURRENTLY MANIPULATING 74
5.3.5 PROPERTIES: RETRIEVING OR CHANGING PARTS OF AN OBJECT ... 75
5.3.6 MEMBER VARIABLES AND LOCAL VARIABLES 76
5.4 USING THE MOUSE POSITION TO ROTATE THE CANNON BARREL 76
5.5 WHAT YOU HAVE LEARNED 78
6 REACTING TO PLAYER INPUT 81
6.1 INTRODUCTION 81
6.2 REACTING TO A MOUSE CLICK 81
6.2.1 BUTTONSTATE: AN ENUMERATED TYPE 81
6.2.2 THE IF-INSTRUCTION: EXECUTING AN INSTRUCTION DEPENDING ON
A CONDITION 83
6.3 BOOLEAN VALUES 84
6.3.1 COMPARISON OPERATORS 84
6.3.2 LOGIC OPERATORS 85
6.3.3 THE BOOLEAN TYPE 85
6.4 MORE ON IF-LNSTRUCTIONS 87
6.4.1 AN IF-LNSTRUCTION WITH AN ALTERNATIVE 87
6.4.2 A NUMBER OF DIFFERENT ALTERNATIVES 88
6.4.3 TOGGLING THE CANNON BARREL BEHAVIOR 89
6.5 HANDLING KEYBOARD AND GAMEPAD INPUT 91
6.5.1 BASICS OF HANDLING KEYBOARD INPUT 91
6.5.2 A MULTICOLORED CANNON 91
6.5.3 HANDLING THE KEYBOARD INPUT 92
6.6 WHAT YOU HAVE LEARNED 93
XIV CONTENTS
7 BASIC GAME OBJECTS 95
7.1 INTRODUCTION 95
7.2 STRUCTURING THE GAME WORLD 95
7.2.1 THE BASICS 95
7.2.2 THE HANDLELNPUT METHOD: ORGANIZING INSTRUCTIONS IN
METHODS 96
7.2.3 DIFFERENT KINDS OF METHODS: WITH OR WITHOUT PARAMETERS,
WITH OR WITHOUT A RESULT 97
7.2.4 DECLARATIONS VERSUS PARAMETERS 100
7.2.5 WHY DECLARATIONS ARE USEFUL 100
7.3 CLASSES AND OBJECTS 100
7.3.1 AN OBJECT IS A GROUP OF VARIABLES WITH METHODS AND
PROPERTIES 100
7.3.2 OBJECTS IN THE PAINTER GAME 101
7.3.3 ADDING CLASSES TO YOUR PROJECT 101
7.3.4 CLASSES CAN BE USED AS A TYPE 103
7.4 THE CANNON CLASS 104
7.4.1 DATA IN THE CANNON CLASS 104
7.4.2 ADDING METHODS TO THE CANNON CLASS 106
7.4.3 ACCESSING THE DATA IN THE CANNON CLASS 108
7.4.4 RETRIEVING THE COLOR OF THE CANNON OBJECT 109
7.4.5 ADDING MORE PROPERTIES ILL
7.4.6 PROPERTIES DO NOT ALWAYS DIRECTLY CORRESPOND TO DATA . . 112
7.5 REORGANIZING THE CLASS STRUCTURE 113
7.5.1 A CLASS FOR HANDLING INPUT 113
7.5.2 THE GAMEWORLD CLASS 116
7.5.3 MANAGING THE GAME OBJECTS 117
7.6 OBJECTS AND TYPES 120
7.6.1 COPY BY VALUE OR BY REFERENCE 120
7.6.2 THE
NULL
KEYWORD 122
7.6.3 DIFFERENT KINDS OF OBJECT TYPES 123
7.7 WHAT YOU HAVE LEARNED 123
8 ADDING INTERACTION 125
8.1 INTRODUCTION 125
8.2 THE BALL CLASS 125
8.2.1 STRUCTURE OF THE CLASS 125
8.2.2 INITIALIZING THE BALL 126
8.2.3 SHOOTING THE BALL 127
8.2.4 UPDATING THE BALL 128
8.2.5 DRAWING THE BALL ON THE SCREEN 132
8.3 THE PAINTCAN CLASS 133
8.3.1 A CLASS WITH MULTIPLE INSTANCES 133
8.3.2 RANDOMNESS IN GAMES 134
8.3.3 CALCULATING A RANDOM VELOCITY AND COLOR 136
CONTENTS XV
8.3.4 UPDATING THE PAINT CAN 137
8.3.5 DRAWING THE CANS ON THE SCREEN 138
8.4 HANDLING COLLISIONS BETWEEN THE BALL AND THE CANS 139
8.5 WHAT YOU HAVE LEARNED 140
9 A LIMITED NUMBER OF LIVES 141
9.1 INTRODUCTION 141
9.2 THE NUMBER OF LIVES 141
9.2.1 MAINTAINING THE NUMBER OF LIVES 141
9.2.2 INDICATING THE NUMBER OF LIVES TO THE PLAYER 142
9.3 THE
WHILE
-INSTRUCTION: EXECUTING INSTRUCTIONS MULTIPLE TIMES . . . 142
9.3.1 A SHORTER NOTATION FOR INCREMENTING COUNTERS 144
9.4 THE
FOR
-INSTRUCTION: A COMPACT VERSION OF
WHILE
144
9.5 A FEW SPECIAL CASES 146
9.5.1 NO REPEAT AT ALL 146
9.5.2 INFINITE REPEAT 146
9.5.3 NESTED REPEATS 147
9.6 RESTARTING THE GAME AFTER THE GAME IS OVER 148
9.7 WHAT YOU HAVE LEARNED 150
10 ORGANIZING GAME OBJECTS 151
10.1 INTRODUCTION 151
10.2 SIMILARITIES BETWEEN GAME OBJECTS 151
10.3 INHERITANCE 152
10.3.1 GAME OBJECTS AND INHERITANCE 153
10.3.2 THE THREECOLORGAMEOBJECT CLASS 153
10.4 CREATING SPECIAL VERSIONS OF GAME OBJECTS 155
10.4.1 THE CANNON CLASS 155
10.4.2 OVERRIDING METHODS FROM THE BASE CLASS 157
10.4.3 ACCESSING MEMBER VARIABLES FROM THE BASE CLASS 159
10.4.4 ACCESS MODIFIERS AND METHODS/PROPERTIES 161
10.4.5 THE FINAL CANNON CLASS 161
10.5 THE BALL CLASS 163
10.5.1 OUTLINE OF THE CLASS 163
10.5.2 THE RESET METHOD 165
10.5.3
BASE
VERSUS
THIS
165
10.5.4 POLYMORPHISM 166
10.5.5 SEALED METHODS 167
10.6 HIERARCHIES OF CLASSES 167
10.6.1 A SUBCLASS IS A KIND OF BASE CLASS 167
10.6.2 DESIGNING CLASS HIERARCHIES 168
10.7 WHAT YOU HAVE LEARNED 169
11 FINISHING THE GAME 171
11.1 INTRODUCTION 171
11.2 ADDING MOTION EFFECTS 171
11.3 ADDING SOUNDS AND MUSIC 172
XVI
CONTENTS
11.4 MAINTAINING A SCORE 173
11.5 DRAWING TEXT ON THE SCREEN 174
11.6 CHARACTERS, STRINGS AND TYPE CONVERSION 175
11.6.1 THE
CHAR
TYPE 175
11.6.2 STRING OPERATIONS 178
11.7 WHAT YOU HAVE LEARNED 180
PART III STRUCTURES AND PATTERNS
12 COLLECTIONS OF GAME OBJECTS 183
12.1 INTRODUCTION 183
12.2 MANY GAME OBJECTS 183
12.3 SNOWFLAKES 184
12.4 COLLECTIONS OF OBJECTS 184
12.5 THE I LIST
INTERFACE 187
12.6 THE COLLECTION INTERFACE 188
12.7 THE I SET INTERFACE 189
12.8 THE I DICTIONARY INTERFACE 189
12.9 THE ARRAY: A SIMPLER VERSION OF THE LIST 190
12.9.1 STRINGS: A SPECIAL KIND OF ARRAY 192
12.10
FOREACH:
DO SOMETHING WITH ALL THE ITEMS IN A LIST OR AN ARRAY . 193
12.11 ITERATING WITH AN ITERATOR 194
12.12 WHAT YOU HAVE LEARNED 195
13 FULLSCREEN GAMES 197
13.1 INTRODUCTION 197
13.2 SETTING THE RESOLUTION 197
13.3 UPDATING THE GRAPHICS DEVICE 198
13.4 CORRECTING THE MOUSE POSITION 201
13.5 SCALING THE SPRITES 201
13.6 MAKING SURE WE CAN STILL QUIT THE GAME 202
13.7 WHAT YOU HAVE LEARNED 202
14 GAME OBJECTS IN A STRUCTURE 203
14.1 INTRODUCTION 203
14.2 GAME OBJECTS IN A GRID 203
14.2.1 GRIDS IN GAMES 203
14.2.2 USING A GRID TO DRAW SPRITES 204
14.2.3 GRID OPERATIONS 205
14.2.4 MORE POSSIBILITIES WITH GRIDS 206
14.3 HIERARCHY OF GAME OBJECTS 206
14.3.1 ANATOMY OF A GAME OBJECT 206
14.3.2 RELATIONS BETWEEN GAME OBJECTS 208
14.3.3 LOCAL VERSUS GLOBAL POSITIONS 208
14.3.4 LAYERS OF GAME OBJECTS 209
14.4 DIFFERENT KINDS OF GAME OBJECTS 210
14.4.1 A SPRITE GAME OBJECT 210
CONTENTS XVII
14.4.2 A LIST OF GAME OBJECTS 211
14.4.3 A GRID OF GAME OBJECTS 215
14.4.4 A GRID OF JEWELS 217
14.4.5 MOVING SMOOTHLY ON THE GRID 218
14.4.6 SELECTING ROWS IN THE GRID 220
14.5 CREATING THE GAME OBJECTS 221
14.6 WHAT YOU HAVE LEARNED 223
15 REDESIGNING THE GAME WORLD 225
15.1 INTRODUCTION 225
15.2 BETTER ASSET MANAGEMENT 225
15.2.1 MOVING SPRITES AROUND 225
15.2.2 THE ASSET MANAGER 226
15.2.3 LOADING AND RETRIEVING ASSETS 227
15.3 ACCESSING THE GAME WORLD 229
15.4 GAME OBJECTS USING THE ASSET MANAGER 229
15.4.1 THE SPRITEGAMEOBJECT CLASS 229
15.4.2 THE ROWSELECTGAMEOBJECT CLASS 230
15.4.3 THE JEWEL CLASS 230
15.5 WHAT YOU HAVE LEARNED 231
16 GAMEPLAY PROGRAMMING 233
16.1 INTRODUCTION 233
16.2 INTERACTION BETWEEN GAME OBJECTS 233
16.2.1 FINDING OTHER GAME OBJECTS 233
16.2.2 ASSIGNING IDENTIFIERS TO GAME OBJECTS 234
16.2.3 FINDING GAME OBJECTS 235
16.2.4 RECURSION: A METHOD CALLING ITSELF 236
16.2.5 FINDING THE GAME WORLD 238
16.2.6 UPDATING THE ROWSELECTGAMEOBJECT CLASS 240
16.3 INTRODUCING A COUPLE OF NEW GAME OBJECT TYPES 240
16.3.1 THE SCOREGAMEOBJECT CLASS: MAINTAINING THE CURRENT SCORE240
16.3.2 A MOVING JEWEL CART 243
16.4 FINDING COMBINATIONS OF JEWELS 244
16.4.1 HANDLING THE COMBINATIONS 244
16.4.2 FINDING VALID COMBINATIONS OF JEWELS 245
16.4.3 REMOVING JEWELS FROM THE GRID 247
16.4.4 UPDATING OTHER GAME OBJECTS 248
16.5 WHAT YOU HAVE LEARNED 248
17 GAME STATES 249
17.1 INTRODUCTION 249
17.2 ADDING A TITLE SCREEN 249
17.3 ADDING A BUTTON FOR SHOWING THE HELP FRAME 250
17.4 OVERLAYS 253
17.5 WHAT YOU HAVE LEARNED 254
XVIII
CONTENTS
18 FINISHING THE GAME 255
18.1 INTRODUCTION 255
18.2 EXTRA POINTS FOR MULTIPLE COMBINATIONS 255
18.3 TIME IN GAMES 256
18.3.1 OTHER USEFUL CLASSES FOR MANAGING TIME 257
18.3.2 A TIMER FOR CONTROLLING VISIBILITY OF A GAME OBJECT .... 257
18.4 A FIELD OF GLITTERS 258
18.4.1 THE CONSTRUCTOR 259
18.4.2 ADDING GLITTERS 260
18.4.3 ACCESSING PIXEL COLOR DATA 261
18.4.4 UPDATING THE GLITTER FIELD 263
18.4.5 DRAWING THE GLITTER FIELD 264
18.4.6 ADDING GLITTERS TO GAME OBJECTS 265
18.5 ADDING MUSIC AND SOUND EFFECTS 267
18.6 WHAT YOU HAVE LEARNED 269
PART IV MAKING YOUR GAMES APPEALING
19 SPRITE SHEETS 273
19.1 INTRODUCTION 273
19.2 OVERVIEW OF THE EXAMPLE PROJECT 273
19.3 LOADING A SPRITE SHEET 274
19.4 MANAGING THE SPRITE SHEET 276
19.5 FINALIZING THE EXAMPLE 278
19.6 WHAT YOU HAVE LEARNED 279
20 MENUS AND SETTINGS 281
20.1 INTRODUCTION 281
20.2 SETTING UP THE MENU 281
20.3 ADDING AN ON/OFF BUTTON 282
20.4 ADDING A SLIDER BUTTON 282
20.5 READING AND STORING GAME SETTINGS 286
20.6 WHAT YOU HAVE LEARNED 288
21 GAME STATE MANAGEMENT 289
21.1 INTRODUCTION 289
21.2 BASICS OF MANAGING GAME STATES 289
21.2.1 A GENERIC GAME LOOP OBJECT INTERFACE 290
21.2.2 THE GAMESTATEMANAGER CLASS 291
21.3 ADDING STATES AND SWITCHING BETWEEN THEM 293
21.4 THE LEVEL MENU STATE 293
21.5 WHAT YOU HAVE LEARNED 296
22 LOADING LEVELS FROM FILES 297
22.1 INTRODUCTION 297
CONTENTS XIX
22.2 STRUCTURE OF A LEVEL 297
22.3 THE TILE CLASS 298
22.4 OTHER LEVEL INFORMATION 299
22.5 FILE READING IN C# 300
22.5.1 READING A TEXT FILE 300
22.5.2 STREAMS VERSUS TEXT READERS AND WRITERS 301
22.5.3 READER 302
22.5.4 TEXT READER 302
22.5.5 STREAM READER 303
22.5.6 ABSTRACT CLASSES 303
22.6 READING THE LEVELS FROM THE TEXT FILE 305
22.6.1 THE LOADLEVELS METHOD 305
22.6.2 CREATING THE LEVEL OBJECT 305
22.6.3 THE
SWITCH
-INSTRUCTION: HANDLING ALTERNATIVES 307
22.6.4 THE
BREAK
-INSTRUCTION 308
22.6.5 LOADING DIFFERENT KINDS OF TILES 309
22.7 COMPLETING THE LEVEL CLASS 311
22.8 MAINTAINING THE PLAYER S PROGRESS 312
22.9 WHAT YOU HAVE LEARNED 314
23 PAIRING THE PENGUINS 315
23.1 INTRODUCTION 315
23.2 PENGUIN SELECTION 315
23.2.1 THE ARROW CLASS 315
23.2.2 THE ANIMAL SELECTOR 316
23.3 INPUT HANDLING ORDER 318
23.4 UPDATING ANIMALS 319
23.5 DEALING WITH MEETING OTHER GAME OBJECTS 322
23.6 MAINTAINING THE NUMBER OF PAIRS 324
23.7 WHAT YOU HAVE LEARNED 326
24 FINISHING THE GAME 327
24.1 INTRODUCTION 327
24.2 SEPARATING CODE INTO DIFFERENT LIBRARIES 327
24.2.1 CREATING AND FILLING A LIBRARY 328
24.2.2 PUBLIC OR PRIVATE CLASSES 328
24.2.3 A CONVENIENT GAMEENVIRORIMENT CLASS 329
24.3 FINISHING THE USER INTERFACE 331
24.3.1 SHOWING HINTS 331
24.3.2 RESETTING THE LEVEL 332
24.3.3 MOVING TO THE NEXT LEVEL 333
24.3.4 MUSIC AND SOUNDS 335
24.4 SOME FINAL NOTES 336
24.5 WHAT YOU HAVE LEARNED 337
X CONTENTS
PART V ANIMATION AND COMPLEXITY
25 CREATING THE MAIN GAME STRUCTURE 341
25.1 INTRODUCTION 341
25.2 OVERVIEW OF THE GAME STRUCTURE 341
25.3 THE STRUCTURE OF A LEVEL 341
25.4 WATER DROPS 342
25.5 THE TILE CLASS 343
25.6 SETTING UP THE LEVEL CLASS 343
25.7 CREATING THE LEVEL OBJECT 344
25.8 EXCEPTIONS 346
25.8.1 DEALING WITH ERRORS 346
25.8.2 THE
TRY-CATCH
INSTRUCTION 346
25.8.3 THROWING YOUR OWN EXCEPTIONS 348
25.9 WHAT YOU HAVE LEARNED 349
26 ANIMATION 351
26.1 INTRODUCTION 351
26.2 WHAT IS ANIMATION? 351
26.3 THE ANIMATION CLASS 352
26.4 PLAYING AN ANIMATION 353
26.4.1 UPDATING THE ANIMATION THAT IS CURRENTLY PLAYING 354
26.4.2 MIRRORING SPRITES 355
26.5 AN ANIMATED GAME OBJECT 355
26.6 THE PLAYER CLASS 357
26.7 WHAT YOU HAVE LEARNED 360
27 GAME PHYSICS 361
27.1 INTRODUCTION 361
27.2 LOCKING THE CHARACTER IN THE GAME WORLD 361
27.3 SETTING THE PLAYER AT THE RIGHT POSITION 362
27.4 JUMPING 363
27.5 ... AND FALLING 364
27.6 COLLISION DETECTION 365
27.7 RETRIEVING BOUNDING BOXES 368
27.8 PER-PIXEL COLLISION DETECTION 368
27.9 HANDLING COLLISIONS BETWEEN THE CHARACTER AND THE TILES 370
27.10 DEALING WITH THE COLLISION 372
27.11 WHAT YOU HAVE LEARNED 375
28 INTELLIGENT ENEMIES 377
28.1 INTRODUCTION 377
28.2 THE ROCKET 377
28.2.1 CREATING AND RESETTING THE ROCKET 378
28.2.2 PROGRAMMING THE ROCKET BEHAVIOR 379
28.3 A PATROLLING ENEMY 381
28.3.1 THE BASIC PATROLLINGENEMY CLASS 381
CONTENTS XXI
28.3.2 DIFFERENT TYPES OF ENEMIES 383
28.4 OTHER TYPES OF ENEMIES 384
28.5 LOADING THE DIFFERENT TYPES OF ENEMIES 385
28.6 WHAT YOU HAVE LEARNED 386
29 ADDING PLAYER INTERACTION 387
29.1 INTRODUCTION 387
29.2 COLLECTING WATER DROPS 387
29.3 ICE BLOCKS 388
29.4 ENEMIES COLLIDING WITH THE PLAYER 389
29.5 WHAT YOU HAVE LEARNED 392
30 FINISHING THE GAME 393
30.1 INTRODUCTION 393
30.2 ADDING A TIMER 393
30.2.1 MAKING THE TIMER GO FASTER OR SLOWER 394
30.2.2 WHEN THE TIMER REACHES ZERO 396
30.3 DRAWING MOUNTAINS AND CLOUDS 397
30.4 FINALIZING THE LEVEL PROGRESSION 399
30.5 WHAT YOU HAVE LEARNED 402
APPENDIX A EXERCISES AND CHALLENGES 403
A.L EXERCISES AND CHALLENGES FOR PART I 403
EXERCISES 403
CHALLENGES 406
A.2 EXERCISES AND CHALLENGES FOR PART II 407
EXERCISES 407
CHALLENGES 411
A.3 EXERCISES AND CHALLENGES FOR PART 111 412
EXERCISES 412
CHALLENGES 416
A.4 EXERCISES AND CHALLENGES FOR PART IV 418
EXERCISES 418
CHALLENGES 422
A.5 EXERCISES AND CHALLENGES FOR PART V 422
EXERCISES 422
CHALLENGES 425
APPENDIX B SYNTAX DIAGRAMS 427
B.L INTRODUCTION 427
B.2 COMPILATION UNIT 427
B.3 TOP-LEVEL DECLARATION 427
B.4 TYPE DECLARATION 428
B.5 PARAMETERS 428
B.6 MEMBER 429
B.7 BLOCK 429
B.8 DECLARATION 430
XXII CONTENTS
B.9 INITIALIZATION 430
B. 10 TYPE 430
B.LL INSTRUCTION 431
B. 11.1 IF-INSTRUCTION 431
B.11.2 WHILE-INSTRUCTION 431
B. 11.3 FOR-INSTRUCTION 432
B.L
1.4 FOREACH-INSTRUCTION 432
B. 11.5 SWITCH-INSTRUCTION 432
B.L 1.6 TRY-CATCH-INSTRUCTION 433
B.12 EXPRESSION 433
B.13 CONSTANT 434
B.14 SYMBOL 434
B.15 NUMBER 434
FURTHER READING 435
GLOSSARY 437
INDEX 441
|
any_adam_object | 1 |
author | Egges, Arjan Fokker, Jeroen D. Overmars, Mark H. 1958- |
author_GND | (DE-588)1089271069 |
author_facet | Egges, Arjan Fokker, Jeroen D. Overmars, Mark H. 1958- |
author_role | aut aut aut |
author_sort | Egges, Arjan |
author_variant | a e ae j d f jd jdf m h o mh mho |
building | Verbundindex |
bvnumber | BV040978454 |
classification_rvk | ST 250 ST 324 |
classification_tum | DAT 758f DAT 358f |
ctrlnum | (OCoLC)856797765 (DE-599)DNB1030170053 |
dewey-full | 005.133 794.815133 |
dewey-hundreds | 000 - Computer science, information, general works 700 - The arts |
dewey-ones | 005 - Computer programming, programs, data, security 794 - Indoor games of skill |
dewey-raw | 005.133 794.815133 |
dewey-search | 005.133 794.815133 |
dewey-sort | 15.133 |
dewey-tens | 000 - Computer science, information, general works 790 - Recreational and performing arts |
discipline | Sport Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>02211nam a2200541 c 4500</leader><controlfield tag="001">BV040978454</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20170720 </controlfield><controlfield tag="007">t|</controlfield><controlfield tag="008">130502s2013 gw a||| |||| 00||| eng d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">13,N05</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1030170053</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783642365799</subfield><subfield code="c">Gb. : ca. EUR 48.10 (DE) (freier Pr.), ca. EUR 49.45 (AT) (freier Pr.), ca. sfr 60.00 (freier Pr.)</subfield><subfield code="9">978-3-642-36579-9</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783642365799</subfield></datafield><datafield tag="028" ind1="5" ind2="2"><subfield code="a">Best.-Nr.: 86133758</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)856797765</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1030170053</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-BE</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-20</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-706</subfield><subfield code="a">DE-83</subfield><subfield code="a">DE-19</subfield><subfield code="a">DE-859</subfield><subfield code="a">DE-573</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">794.815133</subfield><subfield code="2">22/ger</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 324</subfield><subfield code="0">(DE-625)143660:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 758f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 358f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Egges, Arjan</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Learning C# by programming games</subfield><subfield code="c">Arjan Egges ; Jeroen D. Fokker ; Mark H. Overmars</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Berlin [u.a.]</subfield><subfield code="b">Springer</subfield><subfield code="c">2013</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXII, 443 S.</subfield><subfield code="b">Ill.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Computerspiel</subfield><subfield code="0">(DE-588)4010457-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">C sharp</subfield><subfield code="0">(DE-588)4616843-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Computerspiel</subfield><subfield code="0">(DE-588)4010457-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">Programmierung</subfield><subfield code="0">(DE-588)4076370-5</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Fokker, Jeroen D.</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Overmars, Mark H.</subfield><subfield code="d">1958-</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)1089271069</subfield><subfield code="4">aut</subfield></datafield><datafield tag="776" ind1="0" ind2="8"><subfield code="i">Erscheint auch als</subfield><subfield code="n">Online-Ausgabe</subfield><subfield code="z">978-3-642-36580-5</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=4242496&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=025956502&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-025956502</subfield></datafield></record></collection> |
id | DE-604.BV040978454 |
illustrated | Illustrated |
indexdate | 2024-12-20T16:28:33Z |
institution | BVB |
isbn | 9783642365799 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-025956502 |
oclc_num | 856797765 |
open_access_boolean | |
owner | DE-20 DE-91G DE-BY-TUM DE-706 DE-83 DE-19 DE-BY-UBM DE-859 DE-573 |
owner_facet | DE-20 DE-91G DE-BY-TUM DE-706 DE-83 DE-19 DE-BY-UBM DE-859 DE-573 |
physical | XXII, 443 S. Ill. |
publishDate | 2013 |
publishDateSearch | 2013 |
publishDateSort | 2013 |
publisher | Springer |
record_format | marc |
spellingShingle | Egges, Arjan Fokker, Jeroen D. Overmars, Mark H. 1958- Learning C# by programming games Computerspiel (DE-588)4010457-6 gnd Programmierung (DE-588)4076370-5 gnd C sharp (DE-588)4616843-6 gnd |
subject_GND | (DE-588)4010457-6 (DE-588)4076370-5 (DE-588)4616843-6 |
title | Learning C# by programming games |
title_auth | Learning C# by programming games |
title_exact_search | Learning C# by programming games |
title_full | Learning C# by programming games Arjan Egges ; Jeroen D. Fokker ; Mark H. Overmars |
title_fullStr | Learning C# by programming games Arjan Egges ; Jeroen D. Fokker ; Mark H. Overmars |
title_full_unstemmed | Learning C# by programming games Arjan Egges ; Jeroen D. Fokker ; Mark H. Overmars |
title_short | Learning C# by programming games |
title_sort | learning c by programming games |
topic | Computerspiel (DE-588)4010457-6 gnd Programmierung (DE-588)4076370-5 gnd C sharp (DE-588)4616843-6 gnd |
topic_facet | Computerspiel Programmierung C sharp |
url | http://deposit.dnb.de/cgi-bin/dokserv?id=4242496&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=025956502&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT eggesarjan learningcbyprogramminggames AT fokkerjeroend learningcbyprogramminggames AT overmarsmarkh learningcbyprogramminggames |
Inhaltsverzeichnis
Paper/Kapitel scannen lassen
Paper/Kapitel scannen lassen
Teilbibliothek Mathematik & Informatik
Signatur: |
0102 DAT 358f 2013 A 4250 Lageplan |
---|---|
Exemplar 1 | Ausleihbar Am Standort |