Obsah Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Proč právě Flash? Systémové požadavky
Jak používat tuto knihu Doprovodný CD-ROM
17 17
18 19
Část první Začínáme s tvorbou her ve Flashi . . . . . . . . . . . . . . 21 1
První kroky . . . . . . . . . . . . . . . . . . . . . . . . 23 Podnětné nakopnutí Terminologie Herní zobrazení Základní termíny
Žánry her Omezení nástroje Flash Flashové hry versus ostatní hry Neimplementovatelné vlastnosti her
Zapamatujte si
2
25 27 27 28
30 30 31 32
33
Plán: od nápadu k návrhu . . . . . . . . . . . . . 35 Postup návrhu Vytvoření námětu Určení cílové skupiny hráčů Vytvoření vzhledu a dojmu ze hry (look and feel) Odhadněte své slabiny Úprava konceptu hry Implementace hry Testování a kontrola kvality
Zapamatujte si
Programování her v Macromedia Flash MX profesionálně
37 38 39 40 40 42 43 44
45
5
Obsah
Část druhá Zkoumáme základy . . . . . . . . . . . . . . . . . . . . . . . . 47 3
Základy trigonometrie . . . . . . . . . . . . . . . . 49 Proč se učit trigonometrii? Souřadnicový systém Flashe Kartézské souřadnice Úhly
57 58 59
Sinus, kosinus a tangens Promítání
60 62
Velikost rychlosti a rychlost Zrychlení
71 72 72 78
Tři Newtonovy pohybové zákony
81
První Newtonův pohybový zákon Druhý Newtonův pohybový zákon Třetí Newtonův pohybový zákon
81 82 84
Gravitace Skutečný popis gravitace Ještě dostačující popis gravitace
Tření Skutečný popis tření Ještě dostatečný popis tření
Zapamatujte si
85 85 86
86 87 89
90
Detekce kolizí . . . . . . . . . . . . . . . . . . . . . . 91 Co je kolize? Detekce pomocí metody hitTest() Kolize filmových klipů
6
64 68
Základy fyziky . . . . . . . . . . . . . . . . . . . . . 69 Úvod do fyziky Velikost rychlosti, rychlost a zrychlení
5
51 54
Anatomie trojúhelníku Pythagorova věta Jádro trigonometrie
Vektory Zapamatujte si
4
51 51
Programování her v Macromedia Flash MX profesionálně
93 94 95
Obsah Kolize filmového klipu s bodem Kolize obsahu filmového klipu (tvaru) s bodem
Detekce s využitím matematiky Detekce Detekce Detekce Detekce Detekce Detekce
kolize kolize kolize kolize kolize kolize
mezi bodem a kruhem mezi dvěma kruhy mezi dvěma přímkami kruhu a přímky bodu a obdélníku dvou obdélníků
Detekce kolize pro složité tvary Zapamatujte si
6
Reakce na kolize mezi objektem a stěnou Reakce na kolize mezi kruhem a přímkou
Zachování hybnosti a energie Opakování: co je to hybnost a energie? Zákony zachování
Použití zákonů zachování Reakce na kolize mezi dvěma obdélníky Reakce na kolize mezi dvěma kruhy (kulečníkové koule)
Zapamatujte si
104 107 115 122 127 129
131 132
136 136 140
143 143 144
145 147 148
154
Dlážděný svět . . . . . . . . . . . . . . . . . . . . . 155 Dílky (dlaždice) Vytváření a správa dílků Vytváření mřížky a ukládání údajů Detekce stupňů přesnosti
Přidání postavy do herního prostředí Externí ukládání dat herního prostředí Zapamatujte si
8
103
Reakce na kolize . . . . . . . . . . . . . . . . . . . 133 Odrazy od stěn
7
97 101
157 160 160 163
166 170 174
Izometrické zobrazení . . . . . . . . . . . . . . . 175 Úvod do izometrie Technický pohled na izometrické zobrazení Orientace v izometrickém systému Umístění objektu do izometrického světa
Programování her v Macromedia Flash MX profesionálně
177 180 180 182
7
Obsah Z-třídění (z-sorting) Konstrukce herního prostředí Zapamatujte si
9
Umělá inteligence . . . . . . . . . . . . . . . . . . 205 Typy umělé inteligence Doma vypěstovaná UI Pravidla pro ovládání postav Nevýhody a jejich řešení Zdrojový kód nepřátel
Dokonalé bludiště Pravidla pro úplné bludiště Použití jazyka ActionScript pro vytvoření úplného bludiště Vizuální implementace úplného bludiště
Algoritmy hledání cest Algoritmus A* Varianty algoritmu A*
Zapamatujte si
10
Konfigurace snímků uživatelského rozhraní Konfigurace zdrojového kódu
Zapamatujte si
210 212 212
214 215 217 220
220 222 230
230
236 239 239 240
242
Grafika ve hrách . . . . . . . . . . . . . . . . . . . 243 Přístup ke grafice
245
Různé typy grafiky Nalezněte si své nástroje Grafická příprava
245 247 248
Fáze grafického návrhu
249
Fáze 1: Inspirace a nápady Fáze 2: Upřesnění Fáze 3: Tvorba
249 250 251
Bezproblémové techniky
254
Světlo a stín Přidáváme hloubku Stíny 8
207 209
Seznamy nejvyšších skóre . . . . . . . . . . . . 233 Správa seznamů nejvyšších skóre Seznam skóre v akci
11
189 193 203
Programování her v Macromedia Flash MX profesionálně
255 257 260
Obsah Osvětlení uživatelského rozhraní Text v perspektivě Změny odstínů Dílky Herní animace
Zapamatujte si
12
282
Zvuk ve hrách . . . . . . . . . . . . . . . . . . . . . 283 Proč je zvuk důležitý Správa zvukových efektů
285 286
Zvuk umístěný ve snímcích Zvuky ovládané pomocí skriptů
287 289
Vytváření zvukových efektů
295
Přípravy Nahrávání „Toto není ten správný zvuk!“
295 296 296
Tvorba hudebních smyček
298
Smyčky bicích nástrojů Příprava a editace zvukových smyček
Zapamatujte si
13
266 271 275 277 280
298 299
302
Seznámení s chatem . . . . . . . . . . . . . . . . 305 Co je to chat? Praktická ukázka fungování chatu
307 309
Vlastnosti jednotlivých součástí chatu Struktura souboru ActionScript
309 312 313
Zapamatujte si
321
Část třetí Hry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 14
Hledání slov . . . . . . . . . . . . . . . . . . . . . . 325 Jak hra funguje Herní logika Výběr kategorie Generování hracího pole Detekce výběru slova
Zapamatujte si Programování her v Macromedia Flash MX profesionálně
327 330 330 334 341
344 9
Obsah
15
Plošinová hra Ice World . . . . . . . . . . . . . 345 Přehled herních prvků XML a editor herních úrovní Formát dat XML Editor herních úrovní
Struktura hry a zdrojové soubory Struktura hry Doplňkové klipy
Kód hry ActionScript neobsažený ve funkcích levelLoaded() Událost onEnterFrame listenForKeys() platformDetect() baddyDetection() collectableDetect()
Možnosti rozšíření hry Zapamatujte si
16
ActionScript neobsažený ve funkcích Událost onEnterFrame buildMap() createFlipper() initializeShot() flip() checkCollision()
Možná vylepšení hry Zapamatujte si
357 357 359
360 361 364 365 366 368 370 371
371 372
375 377 378 380 381 385 386 387 387
388 389
Piškvorky: vaše první hra pro více hráčů . 391 Jak hra funguje Víceuživatelská stránka her Herní kód Zapamatujte si
10
351 353
Pinball . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Přehled herních prvků Kód hry
17
348 350
Programování her v Macromedia Flash MX profesionálně
393 396 400 404
Obsah
18
Kulečník: 9-ball . . . . . . . . . . . . . . . . . . . . 405 Jak hra funguje Víceuživatelská stránka hry Synchronizace: problém víceuživatelských her a jeho řešení Akce víceuživatelských her
Kód hry
19
408 411 411 412
416
Celkový přehled Kdo je první na řadě? Funkce
416 417 418
Možná vylepšení hry Zapamatujte si
425 426
Hra Don't Fall . . . . . . . . . . . . . . . . . . . . . 427 Přehled hry Víceuživatelské akce Herní akce ActionScript umístěný mimo funkce Událost onEnterFrame Funkce buildWorld() Funkce buildCharacter() Funkce startGame() Funkce worldClicked() Funkce determineFall() Funkce fall() Funkce checkTile()
Možná vylepšení hry Zapamatujte si
429 432 433 434 435 435 436 437 438 439 439 441
441 442
Přílohy
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
A
Ochrana vašich her . . . . . . . . . . . . . . . . . 445 Krádeže a ochrana proti nim Zranitelnost: stažení souboru SWF Odstrašující prostředky Zranitelnost: vkládání souboru SWF pomocí HTML Odstrašující prostředky Zranitelnost: dekompilace ActionScriptu Odstrašující prostředky
Programování her v Macromedia Flash MX profesionálně
447 447 447 448 448 448 449
11
Obsah Co dělat, když najdete svou hru na cizí webové adrese? Zašlete e-mail webmasterovi Zašlete e-mail nebo zavolejte ISP Postupujte soudní cestou
B
Internetové základy Socketové servery
460 460 462 463 465
Objekt ElectroServerAS . . . . . . . . . . . . . . 467 470 471
Základy XML ve Flashi . . . . . . . . . . . . . . 487 Učíme se základy XML Použití objektu XML
489 492
Formátování XML Rozbor (analýza) XML Načítání XML Odesílání XML
493 493 494 495
496 497
Zdroje pro vývojáře . . . . . . . . . . . . . . . . 499 Zdroje o hrách obecně Webové zdroje Knihy
Webové zdroje o Flashi Umělá Inteligence (AI) Webové zdroje Knihy
12
455 459
Vlastnosti Instalace serveru ElectroServer Konfigurace serveru ElectroServer Spuštění ElectroServeru
Úvod do socketových serverů Použití objektu XMLSocket
E
455
Úvod k serveru ElectroServer
Akce pro přetažení myší Metody a vlastnosti objektu ElectroServerAS
D
450 451 452
Víceuživatelské servery . . . . . . . . . . . . . . 453 Co je to socketový server?
C
450
Programování her v Macromedia Flash MX profesionálně
501 501 501
501 502 502 503
Obsah Isometrie
504
Webové zdroje Knihy
Matematika
504 504
504
Webové zdroje Knihy
Fyzika
504 505
505
Webové zdroje Knihy
Zvuk
505 505
506
Zvukové knihovny Bicí automaty Software pro editaci zvuku
506 506 507
F
Další hry . . . . . . . . . . . . . . . . . . . . . . . . . 509
Rejstřík
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Programování her v Macromedia Flash MX profesionálně
13