Szczegóły ebooka

Wprowadzenie do fizyki w grach, animacjach i symulacjach Flash

Wprowadzenie do fizyki w grach, animacjach i symulacjach Flash

Dev Ramtal, Adrian Dobre

Ebook

Twoje gry i animacje jeszcze nigdy nie były tak realne!

Dobre odwzorowanie praw fizyki w grach zazwyczaj sprawia, że stają się one bardziej atrakcyjne. Dlaczego tak uważamy? Pewnie ma to związek z naszą intuicją — lubimy, gdy przedmioty w grze zachowują się zgodnie z oczekiwaniami. Realistyczne zderzenia, grawitacja, odbicia to tylko część elementów, których zastosowanie zwiększy Twoją szansę na sukces!

Ta książka porusza wszystkie aspekty związane z wykorzystaniem praw fizyki w grach, animacjach i symulacjach tworzonych we Flashu. W trakcie lektury zostaniesz stopniowo i bezboleśnie wprowadzony w świat obliczeń numerycznych — od najprostszych, pozwalających nadać ruch odbijającej się piłce, do najbardziej skomplikowanych, odwzorowujących na przykład prawdziwy ruch planet w Układzie Słonecznym. Ponadto dowiesz się, jaki wpływ na ruch ma tarcie oraz jak zaprezentować siłę wyporu. Książka ta jest idealną pozycją dla każdego programisty chcącego Tworzyć gry i animacje jak najbliższe rzeczywistemu światu.

Zdobądź tę książkę i opanuj wiedzę na temat:

  • wykorzystania praw fizyki w projektowaniu gier i animacji
  • symulowania uderzeń, odbić i zderzeń
  • wpływu siły grawitacji i tarcia na ruch obiektów

Odwzoruj prawdziwy świat w najdrobniejszych szczegółach!

O autorach (17)

O recenzencie technicznym książki (17)

O twórcy grafiki na okładce książki (18)

Podziękowania (18)

Przedmowa (19)

Część I. Podstawy (23)

Rozdział 1. Wprowadzenie do oprogramowywania zjawisk fizycznych (25)

  • Po co modeluje się zjawiska fizyczne? (25)
    • Uzyskanie realistycznie wyglądających efektów (26)
    • Tworzenie realistycznie wyglądających gier (26)
    • Tworzenie symulacji i modeli (26)
    • Tworzenie dzieł sztuki (27)
    • Czy nie wystarczy użyć biblioteki fizycznej? (27)
  • Czym jest fizyka? (28)
    • Wszystko wokół nas podlega prawom fizyki (29)
    • Prawa i zasady fizyki można zapisać za pomocą równań matematycznych (29)
    • Opisywanie ruchu ciała (29)
  • Oprogramowywanie zjawisk fizycznych (30)
    • Na czym polega różnica między animacją a symulacją? (30)
    • Prawa fizyki są proste (31)
    • Dlatego można w prosty sposób zapisać je w postaci kodu! (31)
    • Cztery kroki oprogramowywania fizyki (31)
  • Prosty przykład (32)
    • Odbijająca się piłka - opis fizyczny (32)
    • Opisanie kodem ruchu piłki w dwóch wymiarach (33)
  • Podsumowanie (35)

Rozdział 2. Programowanie w języku ActionScript 3.0 - wybrane zagadnienia (37)

  • Klasy w języku ActionScript 3.0 (38)
    • Klasy i obiekty (39)
    • Budowa klasy w AS3.0 (39)
    • Funkcje, metody i konstruktory (40)
    • Właściwości (40)
    • Statyczne metody i statyczne właściwości (41)
    • Dziedziczenie (41)
  • Podstawy programowania w języku skryptowym ActionScript 3.0 (42)
    • Zmienne i stałe (42)
    • Typy danych (43)
    • Operatory (46)
    • Klasa Math (47)
    • Logika (48)
    • Pętle (49)
  • Zdarzenia w języku ActionScript 3.0 (51)
    • Procedury wykrywające wystąpienie zdarzenia i obsługujące zdarzenie (51)
    • Zdarzenia w działaniach użytkownika (52)
    • Przeciągnij i upuść (52)
  • Układ współrzędnych we Flashu (53)
    • Współrzędne w dwóch wymiarach (53)
    • Układ trójwymiarowy we Flashu (54)
  • Graficzny interfejs programowania Flasha (56)
    • Rysowanie prostych i krzywych (56)
    • Wypełnienia i gradienty (57)
    • Przykład - piłka wewnątrz pudełka (58)
  • Tworzenie animacji za pomocą kodu (60)
    • Wbudowane odliczanie klatek w roli zegara (60)
    • Praca z klasą Timer (61)
    • Wyznaczanie upływu czasu za pomocą funkcji getTimer() (62)
    • Przygotowywanie danych do wykonania animacji (64)
  • Wykrywanie zderzeń (65)
    • Praca z metodą hitTestObject() (65)
    • Praca z metodą hitTestPoint() (65)
    • Wykrywanie zderzeń na podstawie wyznaczania odległości (65)
    • Złożone algorytmy wykrywania zderzeń (67)
  • Podsumowanie (67)

Rozdział 3. Nieco podstaw z matematyki (69)

  • Układ współrzędnych i proste wykresy (70)
    • Narzędzie rysujące - klasa Graph (70)
    • Tworzenie wykresów funkcji za pomocą klasy Graph (71)
    • Proste (73)
    • Wykresy wielomianów (73)
    • Wzrost i zanik - funkcje wykładnicze i logarytmiczne (74)
    • Wprawianie obiektu w ruch wzdłuż krzywej (76)
    • Odległość pomiędzy dwoma punktami (82)
  • Podstawy trygonometrii (83)
    • Stopnie i radiany (84)
    • Funkcja sinus (84)
    • Funkcja cosinus (85)
    • Funkcja tangens (87)
    • Funkcje cyklometryczne (88)
    • Funkcje trygonometryczne w animacjach (89)
  • Wektory i podstawy algebry wektorowej (93)
    • Czym są wektory? (93)
    • Wektory i skalary (94)
    • Sumowanie wektorów (94)
    • Rozkładanie wektorów na składowe (96)
    • Mnożenie wektorów - iloczyn skalarny (98)
    • Mnożenie wektorów - iloczyn wektorowy (99)
    • Algebra wektorów w klasie Vector2D (100)
  • Podstawy rachunku różniczkowo-całkowego (102)
    • Kąt nachylenia, czyli gradient (102)
    • Tempo zmian - pochodna (104)
    • Sumowanie - całki (108)
  • Podsumowanie (110)

Rozdział 4. Podstawy fizyki (111)

  • Podstawowe pojęcia z dziedziny fizyki i stosowane zapisy (112)
    • Wielkości fizyczne i ich jednostki (112)
    • Notacja naukowa (112)
  • Cząstki i pozostałe obiekty fizyczne (113)
    • Czym jest cząstka? (114)
    • Właściwości cząstek (114)
    • Tworzenie klasy Particle (115)
    • Przesuwanie cząstek - klasa Mover (118)
    • Rozwijanie klasy Particle (120)
  • Opisywanie ruchu - kinematyka (124)
    • Idee - przemieszczenie, prędkość, szybkość i przyśpieszenie (124)
    • Dodawanie wielkości wektorowych (127)
    • Ilustrowanie ruchu na wykresach (128)
    • Równania ruchu jednostajnie przyśpieszonego (128)
    • Przykład zastosowania równań ruchu - lot pocisku (130)
    • Inne pojęcia związane z ruchem - bezwładność, masa i pęd (133)
  • Przewidywanie ruchu ciała - siły i dynamika (134)
    • Siła - przyczyna ruchu (134)
    • Zależność łącząca siłę, masę i przyśpieszenie (135)
    • Rodzaje sił (135)
    • Rozkładanie sił - składanie wektorów i siła wypadkowa (136)
    • Siły w stanie równowagi (138)
    • Przykład - spadające ciało (139)
  • Energia (142)
    • Pojęcie pracy w fizyce (143)
    • Zdolność do wykonania pracy - energia (144)
    • Przekazywanie, przekształcanie i zachowanie energii (144)
    • Energia potencjalna i energia kinetyczna (145)
    • Moc (146)
    • Przykład - prosta symulacja "samochodu" (147)
  • Podsumowanie (150)

Część II. Cząstki, siły i ruch (151)

Rozdział 5. Zasady rządzące ruchem (153)

  • Zasady dynamiki Newtona (154)
    • Pierwsza zasada dynamiki Newtona (N1) (154)
    • Druga zasada dynamiki Newtona (N2) (155)
    • Trzecia zasada dynamiki Newtona (N3) (157)
  • Stosowanie zasad dynamiki Newtona (158)
    • Ogólna metoda pracy z równaniem F = m.a (158)
    • Klasa Forcer (158)
    • Klasa Forces (159)
    • Prosty przykład - lot pocisku w powietrzu (160)
    • Bardziej złożony przykład - pływająca piłka (162)
  • Różniczkowa postać drugiej zasady dynamiki Newtona (164)
    • Co kryje się za wzorem F = m.a? (165)
    • Przykład - ponownie spadające ciało (166)
  • Zasada zachowania energii (167)
    • Zasada zachowania energii mechanicznej (168)
    • Przykład - zmiany energii w czasie lotu pocisku (168)
  • Zasada zachowania pędu (171)
    • Przykład - zderzenie dwóch cząstek w jednym wymiarze (173)
  • Zasady obowiązujące w ruchu obrotowym (175)
  • Podsumowanie (175)

Rozdział 6. Grawitacja, orbity i statki kosmiczne (177)

  • Grawitacja (177)
    • Grawitacja, ciężar i masa (178)
    • Prawo powszechnego ciążenia (178)
    • Przygotowanie funkcji gravity (179)
  • Orbity (181)
    • Klasa Orbiter (181)
    • Prędkość ucieczki (185)
    • Ruch dwóch ciał (186)
  • Grawitacja przy powierzchni Ziemi (189)
    • Przyśpieszenie grawitacyjne w pobliżu powierzchni Ziemi (189)
    • Zależność przyśpieszenia ziemskiego od wysokości (190)
    • Przyśpieszenie grawitacyjne na innych ciałach niebieskich (191)
  • Rakiety (192)
    • Prawdziwie odlotowa nauka! (192)
    • Modelowanie odrzutu (193)
    • Tworzenie symulacji lotu rakiety (193)
  • Podsumowanie (199)

Rozdział 7. Siły kontaktowe i dynamika płynów (201)

  • Siły kontaktowe (202)
    • Siły normalne (202)
    • Naprężanie i ściskanie (203)
    • Tarcie (204)
    • Przykład - ruch ciała po równi pochyłej (205)
  • Ciśnienie (211)
    • Czym jest ciśnienie? (211)
    • Gęstość (212)
    • Ciśnienie na określonej głębokości wywierane przez płyn (213)
    • Ciśnienie statyczne i ciśnienie dynamiczne (213)
  • Wypór hydrostatyczny (214)
    • Prawo Archimedesa (215)
    • Ciężar pozorny (215)
    • Ciała całkowicie zanurzone (216)
    • Ciała pływające (216)
    • Przykład - balon (217)
    • Siła oporu (219)
    • Siła oporu przy małych prędkościach (219)
    • Siła oporu przy dużych prędkościach (220)
    • Której siły oporu mam używać? (221)
    • Wprowadzenie ruchu oporu powietrza do symulacji lotu balonu (222)
    • Przykład - piłka pływająca po powierzchni wody (223)
    • Prędkość końcowa (227)
    • Przykład - spadochron (229)
  • Siła nośna (231)
    • Współczynnik wznoszenia (232)
    • Przykład - samolot (233)
  • Wiatr i turbulencje (235)
    • Wiatr źródłem siły (235)
    • Wiatr a opór (235)
    • Przepływ stabilny i turbulentny (236)
    • Przykład - ruch baniek przy stałym wietrze (236)
    • Modelowanie przepływu turbulentnego (238)
  • Podsumowanie (239)

Rozdział 8. Siła sprężystości - drgania sprężyny (241)

  • Sprężyny i oscylatory - podstawowe zjawiska (241)
    • Ruch drgający (242)
    • Siła sprężystości, tłumienie i wymuszanie (242)
    • Prawo Hooke'a (243)
  • Drgania swobodne (244)
    • Funkcja wyznaczająca siłę sprężystości (244)
    • Przygotowanie prostego oscylatora (244)
    • Prosty ruch harmoniczny (246)
    • Drgania a dokładność obliczeń numerycznych (248)
  • Drgania tłumione (252)
    • Siła tłumiąca (252)
    • Skutek tłumienia drgań (253)
    • Analityczne rozwiązanie równania ruchu drgającego z tłumieniem (254)
  • Drgania wymuszone (255)
    • Siła wymuszająca (255)
    • Przykład - okresowa siła wymuszająca (256)
    • Przykład - losowa siła wymuszająca (257)
    • Grawitacja jako siła wymuszająca - skoki na bungee (257)
    • Przykład - siła wymuszająca sterowana przez użytkownika (261)
  • Układy oscylatorów - wiele ciał na sprężynach (263)
    • Przykład - łańcuch mas połączonych sprężynami (263)
  • Podsumowanie (267)

Rozdział 9. Siła dośrodkowa. Ruch obrotowy (269)

  • Kinematyka jednostajnego ruchu po okręgu (269)
    • Kąt przemieszczenia (270)
    • Prędkość kątowa (271)
    • Przyśpieszenie kątowe (271)
    • Okres, częstotliwość i prędkość kątowa (271)
    • Zależność między prędkością kątową a liniową (272)
    • Przykład - toczące się koło (274)
    • Obracające się cząstki (276)
    • Przykład - satelita okrążający obracającą się Ziemię (277)
  • Przyśpieszenie dośrodkowe i siła dośrodkowa (280)
    • Przyśpieszenie dośrodkowe (280)
    • Przyśpieszenie dośrodkowe, prędkość i prędkość kątowa (281)
    • Siła dośrodkowa (282)
    • Często popełniane błędy (282)
    • Przykład - kolejna próba opisania ruchu satelity (283)
    • Przykład - orbity kołowe dla siły grawitacji (284)
    • Przykład - samochód na zakręcie (287)
  • Niejednostajny ruch po okręgu (290)
    • Siła styczna i przyśpieszenie styczne (291)
    • Przykład - wahadło matematyczne (291)
  • Podsumowanie (295)

Rozdział 10. Siły dalekozasięgowe (297)

  • Oddziaływanie między cząstkami a pole siły (298)
    • Oddziaływanie na odległość (298)
    • Od oddziaływań międzycząsteczkowych do pól sił (298)
  • Grawitacja w ujęciu Newtona (299)
    • Pole grawitacyjne wytwarzane przez ciało (300)
    • Wiele ciał w polu grawitacyjnym (300)
    • Pole grawitacyjne układu dwóch mas (302)
    • Trajektoria pocisku poruszającego się w polu grawitacyjnym (305)
    • Prosta gra - uniknij czarnej dziury (308)
  • Siła elektrostatyczna (315)
    • Ładunek elektryczny (315)
    • Prawo Coulomba oddziaływań elektrostatycznych (316)
    • Przyciąganie i odpychanie między naładowanymi cząstkami (317)
    • Pole elektrostatyczne (319)
  • Siła elektromagnetyczna (322)
    • Pole magnetyczne i działające w nim siły (322)
    • Siła Lorentza (323)
  • Siły innych rodzajów (325)
    • Siły centralne (326)
    • Grawitacja sprężysta? (329)
    • Grawitacja w polu wielu źródeł generujących różne pola (331)
  • Podsumowanie (333)

Część III. Układy wielu cząstek i układy wielopokoleniowe (335)

Rozdział 11. Zderzenia (337)

  • Modelowanie zderzeń (338)
  • Odbicie od poziomej lub pionowej ściany (338)
    • Odbicie sprężyste (339)
    • Rozpraszanie energii na zderzenie (342)
  • Odbicie od ukośnej ściany (343)
    • Wykrywanie zderzeń (343)
    • Przesuwanie cząstki w nowe położenie (345)
    • Obliczanie nowej prędkości (346)
    • Korygowanie prędkości przed zderzeniem (347)
    • Przykład - piłka odbijająca się od nachylonej ściany (349)
    • Przykład - piłka odbijająca się od wielu ścian (353)
  • Zderzenia między cząstkami w jednym wymiarze (354)
    • Przenoszenie cząstek w nowe położenie (355)
    • Zderzenia sprężyste (357)
    • Zderzenia niesprężyste (360)
  • Zderzenia międzycząsteczkowe w dwóch wymiarach (362)
    • Przykład - zderzenie dwóch cząstek w dwóch wymiarach (363)
    • Przykład - zderzenia wielu cząstek (366)
    • Przykład - zderzenia wielu cząstek z odbiciami (366)
  • Podsumowanie (370)

Rozdział 12. Układy cząstek (371)

  • Wprowadzenie do modelowania układów cząstek (372)
  • Uzyskiwanie ciekawych efektów w animacjach z udziałem układów cząstek (373)
    • Prosty przykład - rozbryzg wody (373)
    • Przygotowanie emitera cząstek (376)
    • Efekt dymu (378)
    • Efekt ognia (382)
    • Fajerwerki (383)
  • Układy cząstek i siły zasięgowe (389)
    • Ścieżka cząstek w polu siły (389)
    • Tunele czasoprzestrzenne (392)
  • Układy cząstek oddziałujących ze sobą (394)
    • Układ wielu oddziałujących grawitacyjnie cząstek (395)
    • Prosta symulacja ruchu gwiazd w galaktyce (399)
  • Podsumowanie (403)

Rozdział 13. Ciała złożone (405)

  • Bryła sztywna (406)
    • Podstawy opisu ruchu bryły sztywnej (406)
    • Modelowanie bryły sztywnej (411)
    • Dynamika ruchu obrotowego bryły sztywnej (414)
    • Symulacje uwzględniające dynamikę bryły sztywnej (418)
    • Przykład - prosta symulacja turbiny wiatrowej (421)
    • Przykład - toczenie na równi pochyłej (424)
    • Zderzenia i odbicia ciał sztywnych (430)
    • Przykład - symulacja odbić bryły sztywnej (434)
    • Przykład - zderzenie bloków (437)
  • Ciała odkształcalne (439)
    • Układy sprężyn (439)
    • Symulacja liny (440)
    • Symulacja tkaniny (445)
  • Podsumowanie (447)

Część IV. Tworzenie bardziej złożonych symulacji (449)

Rozdział 14. Metody całkowania numerycznego (451)

  • Ogólne zasady całkowania numerycznego (452)
    • Określenie problemu (452)
    • Charakterystyka metod całkowania numerycznego (454)
    • Rodzaje metod całkowania (456)
  • Przygotowanie klasy Forcer do wykonywania obliczeń różnymi metodami (456)
  • Całkowanie metodą Eulera (457)
    • Całkowanie jawną metodą Eulera (458)
    • Całkowanie niejawną metodą Eulera (458)
    • Całkowanie półjawną metodą Eulera (459)
    • Porównanie jawnej i półjawnej metody Eulera (459)
    • Wady i zalety metod Eulera (460)
  • Całkowanie metodą Rungego-Kutty (461)
    • Metoda Rungego-Kutty drugiego rzędu (RK2) (461)
    • Metoda Rungego-Kutty czwartego rzędu (RK4) (462)
    • Stabilność i dokładność metod RK2 i RK4 w porównaniu z metodą Eulera (463)
  • Całkowanie metodą Verleta (465)
    • Całkowanie położeniową metodą Verleta (465)
    • Całkowanie prędkościową metodą Verleta (467)
    • Sprawdzenie stabilności i dokładności metod Verleta (467)
  • Podsumowanie (468)

Rozdział 15. Pozostałe kwestie techniczne (469)

  • Fizyka w trzech wymiarach (470)
    • Różnica między fizyką w dwóch i w trzech wymiarach (470)
    • Matematyka w trzech wymiarach (470)
    • Przygotowanie klas opisujących trójwymiarowe ciała i ich ruch (476)
    • Przygotowanie modeli trójwymiarowych (478)
    • Przykład - obracający się sześcian (480)
    • Dołączanie bibliotek 3D (483)
    • Nieco na temat Stage3D (483)
  • Przygotowywanie modeli w skali (483)
    • Uzyskiwanie realistycznych efektów (484)
    • Prosty przykład (484)
    • Dobieranie jednostek (484)
    • Współczynniki skalowania i wartości parametrów (485)
    • Skalowanie równań (486)
  • Przygotowywanie dokładnych symulacji (487)
    • Prowadzenie obliczeń na zmiennych typu Number (487)
    • Staranne dobranie metody całkowania (488)
    • Dobranie odpowiedniego kroku obliczeń (488)
    • Staranne dobieranie warunków początkowych (488)
    • Ostrożność przy określaniu warunków brzegowych (488)
  • Podsumowanie (489)

Rozdział 16. Projekty symulacji (491)

  • Projekt łodzi podwodnej (491)
    • Krótki opis teoretyczny (492)
    • Przygotowanie sceny (492)
    • Kod animacji (492)
    • Kod napędzający łódź (494)
    • Sterowanie i efekty wizualne (495)
    • Pełny kod klasy SubmarineMover (496)
    • Dalszy rozwój symulacji (498)
  • Symulator lotów (499)
    • Fizyka lotu a sterowanie samolotem (499)
    • Jak będzie wyglądać symulacja? (503)
    • Przygotowanie sceny (504)
    • Fizyka symulacji (505)
    • Mechanizm sterowania (509)
    • Wyświetlanie informacji o locie (509)
    • Sprawdzenie symulatora (510)
    • Dalszy rozwój symulacji (511)
  • Dokładny model Układu Słonecznego (511)
    • Nad czym będziemy pracować? (511)
    • Nieco fizyki (512)
    • Wybranie odpowiedniego algorytmu (512)
    • Symulacja ruchu jednej planety w warunkach idealnych (514)
    • Dobranie współczynników skalowania (516)
    • Dane dotyczące planet i warunków początkowych (518)
    • Prosty model Układu Słonecznego (518)
    • Wprowadzenie dokładnych warunków początkowych (523)
    • Porównanie wyników symulacji z danymi z NASA (524)
    • Dalszy rozwój symulacji (527)
  • Podsumowanie (527)

Skorowidz (529)

  • Tytuł: Wprowadzenie do fizyki w grach, animacjach i symulacjach Flash
  • Autor: Dev Ramtal, Adrian Dobre
  • Tytuł oryginału: Physics for Flash Games, Animation, and Simulations
  • Tłumaczenie: Julia Szajkowska
  • ISBN: 978-83-246-7182-3, 9788324671823
  • Data wydania: 2013-03-29
  • Format: Ebook
  • Identyfikator pozycji: wprofi
  • Wydawca: Helion