Efekty cząsteczkowe w GM: Różnice pomiędzy wersjami

Klikipedia - klikowa encyklopedia
Skocz do: nawigacji, wyszukiwarki
(jeszcze bez obrazkow)
 
 
(Nie pokazano 8 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
{{MortyArticleInfo|autor=copperdragon}}
+
{{artykuł|autor=copperdragon}}
Artykuł ten omawia zagadnienia, związane z wykorzystaniem efektów cząsteczkowych w Game Makerze.<br />'''Uwaga! Korzystanie z tych opcji wymaga zarejestrowanego GM'a!'''
+
Artykuł ten omawia zagadnienia, związane z wykorzystaniem [[Particles|efektów cząsteczkowych]] w [[Game Maker]]ze.<br />'''Uwaga! Korzystanie z tych opcji wymaga zarejestrowanego GM'a!'''
__FORCETOC__
+
__NOEDITSECTION__
 +
==Wstęp==
 
Ej, ej, spokojnie, nie ma tu nic o partycjach systemowych czy czymś takim.   
 
Ej, ej, spokojnie, nie ma tu nic o partycjach systemowych czy czymś takim.   
Ponieważ miałem problemy ze znalezieniem adekwatnego tłumaczenia tytułu, przyjmijmy, że są to cząsteczki (moim zdaniem to tłumaczenie jest najbardziej pasujące w tym kontekście). Omówię po kolei co i jak, posługując się przykładem miotacza ognia (przypisy, w których będę posługiwał się tym przykładem, zaznaczę kursywą). Warto wspomnieć, że cząsteczki są znacznie mniej pamięciożerne niż zwykłe efekty czy (o zgrozo!) obiekty.  
+
Ponieważ miałem problemy ze znalezieniem adekwatnego tłumaczenia tytułu, przyjmijmy, że są to cząsteczki (moim zdaniem to tłumaczenie jest najbardziej pasujące w tym kontekście). Omówię po kolei co i jak, posługując się przykładem miotacza ognia. Warto wspomnieć, że cząsteczki są znacznie mniej pamięciożerne niż zwykłe efekty czy (o zgrozo!) obiekty.  
  
 
Obrazki przy numerach punktów oznaczają, jaki obrazek ma akcja, której dotyczy dany punkt. Wszystkie te akcje są w zakładce extras.  
 
Obrazki przy numerach punktów oznaczają, jaki obrazek ma akcja, której dotyczy dany punkt. Wszystkie te akcje są w zakładce extras.  
Linia 9: Linia 10:
 
==Ustawienie początkowe ==
 
==Ustawienie początkowe ==
  
1. Stwórz obiekt o nazwie dowolnej (np. miotacz).  
+
1. Stwórz obiekt o nazwie dowolnej (np. miotacz).
  
 
2. Wstaw warunek, w którym poustawiasz potrzebne wartości, np. Create.  
 
2. Wstaw warunek, w którym poustawiasz potrzebne wartości, np. Create.  
 
+
{{grafikax|opis=|pozycja=|adres=http://img176.imageshack.us/img176/5702/part1ud8.png}}
 
3. W tym warunku wstaw zdarzenie "Create particle system" (znajdziesz je w zakładce "extras"), i ustaw głębokość (określa ona, czy efekt będzie na wierzchu, czy pod spodem względem innych obiektów).  
 
3. W tym warunku wstaw zdarzenie "Create particle system" (znajdziesz je w zakładce "extras"), i ustaw głębokość (określa ona, czy efekt będzie na wierzchu, czy pod spodem względem innych obiektów).  
  
 
==Definiowanie efektu==
 
==Definiowanie efektu==
 
+
{{grafikax|opis=|pozycja=|adres=http://img176.imageshack.us/img176/3450/part4rv7.png}}
 
4. Następnie zdefiniuj odpowiedni efekt. Będzie to wymagało kilku zdarzeń. Najpierw wstaw "Create particle type" i ustaw typ, do którego efekt jest przypisany (można mieć w sumie 16 typów). Następnie wybierz kształt (np. explosion albo smoke) bądź odpowiedniego sprite'a.  
 
4. Następnie zdefiniuj odpowiedni efekt. Będzie to wymagało kilku zdarzeń. Najpierw wstaw "Create particle type" i ustaw typ, do którego efekt jest przypisany (można mieć w sumie 16 typów). Następnie wybierz kształt (np. explosion albo smoke) bądź odpowiedniego sprite'a.  
 
+
{{grafikax|opis=|pozycja=|adres=http://img176.imageshack.us/img176/3450/part4rv7.png}}
 
5. W tym samym zdarzeniu wprowadź jeszcze 3 wartości: min size, czyli najmniejsza wielkość, którą można wylosować, max size, czyli największa wielkość, którą można wylosować, oraz size increment, czyli wzrost efektu (zalecane wartości ułamkowe). Jeśli chcesz, żeby z upływem czasu efekt się zmniejszał, nic prostszego: wystarczy dodać minus przed wartością liczbową (opisanym tutaj wartościom można np. przypisać 0.1, 0.1, 0.05).  
 
5. W tym samym zdarzeniu wprowadź jeszcze 3 wartości: min size, czyli najmniejsza wielkość, którą można wylosować, max size, czyli największa wielkość, którą można wylosować, oraz size increment, czyli wzrost efektu (zalecane wartości ułamkowe). Jeśli chcesz, żeby z upływem czasu efekt się zmniejszał, nic prostszego: wystarczy dodać minus przed wartością liczbową (opisanym tutaj wartościom można np. przypisać 0.1, 0.1, 0.05).  
 
+
{{grafikax|opis=|pozycja=|adres=http://img135.imageshack.us/img135/1598/part5ou7.png}}
 
6. Teraz czas na ustawianie koloru. Tutaj również wybieramy typ, do którego jest kolor przypisany. Następnie wybieramy rodzaj kolorowania: albo losowany jest kolor z gradientu pomiędzy dwoma wybranymi (mixed), albo pierwszy kolor przechodzi w drugi (change, przydatny np. przy miotaczach ognia  ). Potem wybieramy dwa kolory (np. żółty i czerwony). Pamiętaj, że jeśli używasz rodzaju kolorowania "change", to należy pamiętać o właściwej kolejności.  
 
6. Teraz czas na ustawianie koloru. Tutaj również wybieramy typ, do którego jest kolor przypisany. Następnie wybieramy rodzaj kolorowania: albo losowany jest kolor z gradientu pomiędzy dwoma wybranymi (mixed), albo pierwszy kolor przechodzi w drugi (change, przydatny np. przy miotaczach ognia  ). Potem wybieramy dwa kolory (np. żółty i czerwony). Pamiętaj, że jeśli używasz rodzaju kolorowania "change", to należy pamiętać o właściwej kolejności.  
 
+
{{grafikax|opis=|pozycja=|adres=http://img135.imageshack.us/img135/1598/part5ou7.png}}
 
7. W tym samym zdarzeniu oprócz koloru możemy wybrać nieprzezroczystość, czyli znana wielu osobom wartość alpha. Są dwie wartości: start alpha i end alpha. Określają one, jak nieprzezroczysty jest obiekt na początku i na końcu. Jeśli obiekt ma nie zmieniać przezroczystości, obie te wartości powinny być takie same. (jeśli chcesz, aby na początku obiekt z czasem zanikał, w start alpha wpisz 1, a w end alpha wpisz 0).  
 
7. W tym samym zdarzeniu oprócz koloru możemy wybrać nieprzezroczystość, czyli znana wielu osobom wartość alpha. Są dwie wartości: start alpha i end alpha. Określają one, jak nieprzezroczysty jest obiekt na początku i na końcu. Jeśli obiekt ma nie zmieniać przezroczystości, obie te wartości powinny być takie same. (jeśli chcesz, aby na początku obiekt z czasem zanikał, w start alpha wpisz 1, a w end alpha wpisz 0).  
 
+
{{grafikax|opis=|pozycja=|adres=http://img135.imageshack.us/img135/2032/part6pw1.png}}
 
8. Teraz czas na ustawienie "życia" cząsteczek danego typu. O co chodzi z tym życiem? Ile czasu cząsteczka będzie istniała, zanim zniknie. Jak można przewidzieć, wartość ta losowana jest z przedziału określanego przez użytkownika (wiecie, jak to się będzie nazywa? Że jest to min life i max life? Cóż za zbieg okoliczności). Domyślnie obie te wartości to 50.  
 
8. Teraz czas na ustawienie "życia" cząsteczek danego typu. O co chodzi z tym życiem? Ile czasu cząsteczka będzie istniała, zanim zniknie. Jak można przewidzieć, wartość ta losowana jest z przedziału określanego przez użytkownika (wiecie, jak to się będzie nazywa? Że jest to min life i max life? Cóż za zbieg okoliczności). Domyślnie obie te wartości to 50.  
 
+
{{grafikax|opis=|pozycja=|adres=http://img176.imageshack.us/img176/1217/part7wj6.png}}
 
9. Kolejna sprawa: ustawianie, jak efekt będzie się poruszał. Najpierw ustawiamy minimalną i maksymalną prędkość (np. 2 i 3). Potem dobieramy odpowiedni przedział kierunków (np. -10 i 10). Potem ustawiamy hamowanie (jeśli wartość będzie ujemna, wtedy cząsteczka będzie przyspieszała). Można tu ustawić np. -0.1.  
 
9. Kolejna sprawa: ustawianie, jak efekt będzie się poruszał. Najpierw ustawiamy minimalną i maksymalną prędkość (np. 2 i 3). Potem dobieramy odpowiedni przedział kierunków (np. -10 i 10). Potem ustawiamy hamowanie (jeśli wartość będzie ujemna, wtedy cząsteczka będzie przyspieszała). Można tu ustawić np. -0.1.  
 
Na koniec w kolejnym zdarzeniu dobieramy grawitację, a ściślej mówiąc jej kierunek i siłę. (ale po kiego grawitacja w miotaczu, to ja nie wiem  )  
 
Na koniec w kolejnym zdarzeniu dobieramy grawitację, a ściślej mówiąc jej kierunek i siłę. (ale po kiego grawitacja w miotaczu, to ja nie wiem  )  
 
+
{{grafikax|opis=|pozycja=|adres=http://img176.imageshack.us/img176/8901/part9mj4.png}}
 
10. Teraz przychodzi czas na tworzenie kolejnych cząsteczek. O so tu chozi? Otóż pewna cząsteczka może się rozmnożyć, albo podczas lotu, albo podczas "śmierci". Wystarczy ustawić typ tworzonej cząsteczki w step type (dla tworzenia co jakiś czas) i death type (dla tworzenia po "śmierci"), a następnie ilość w step number (ile cząsteczek ma być tworzonych co krok ; jeśli ta wartość będzie ujemna, cąsteczki będą tworzyły się co wartość bezwzględną kroków) albo death number (ile cząsteczek ma być tworzonych podczas śmierci). Pozwala to na tworzenie bardzo ciekawych efektów (choć do miotacza raczj nie powinno się tego używać.  
 
10. Teraz przychodzi czas na tworzenie kolejnych cząsteczek. O so tu chozi? Otóż pewna cząsteczka może się rozmnożyć, albo podczas lotu, albo podczas "śmierci". Wystarczy ustawić typ tworzonej cząsteczki w step type (dla tworzenia co jakiś czas) i death type (dla tworzenia po "śmierci"), a następnie ilość w step number (ile cząsteczek ma być tworzonych co krok ; jeśli ta wartość będzie ujemna, cąsteczki będą tworzyły się co wartość bezwzględną kroków) albo death number (ile cząsteczek ma być tworzonych podczas śmierci). Pozwala to na tworzenie bardzo ciekawych efektów (choć do miotacza raczj nie powinno się tego używać.  
  
 
==Ustawianie emiterów==
 
==Ustawianie emiterów==
 
+
{{grafikax|opis=|pozycja=|adres=http://img140.imageshack.us/img140/1544/part10jr1.png}}
 
11. Definiowanie efektów mamy juz za sobą, to teraz czas zrobić emiter. Bierzemy więc zdarzenie "Create emitter" i ustawiamy numerek emitera (jeden z 8), kształt oraz wymiary. Po co ten kształt i wymiary? Otóż emiter może losować miejsce, z którego tworzy cząsteczkę. Miejsce to musi się znajdować w polu emitera. Natomiast pole emitera to może być prostokąt, romb (tutaj: diament), elipsa lub linia. Nie trzeba chyba mówić, że figury te są rysowane z określonych punktów.(tak czy siak, miotacz powinien miotać z jednego miejsca, wtedy x/y min i x/y max ustawiamy jako równe).  
 
11. Definiowanie efektów mamy juz za sobą, to teraz czas zrobić emiter. Bierzemy więc zdarzenie "Create emitter" i ustawiamy numerek emitera (jeden z 8), kształt oraz wymiary. Po co ten kształt i wymiary? Otóż emiter może losować miejsce, z którego tworzy cząsteczkę. Miejsce to musi się znajdować w polu emitera. Natomiast pole emitera to może być prostokąt, romb (tutaj: diament), elipsa lub linia. Nie trzeba chyba mówić, że figury te są rysowane z określonych punktów.(tak czy siak, miotacz powinien miotać z jednego miejsca, wtedy x/y min i x/y max ustawiamy jako równe).  
 
+
{{grafikax|opis=|pozycja=|adres=http://img154.imageshack.us/img154/1579/part13gn6.png}}
 
12. Jeśli chcemy, aby emiter ciągle wysyłał cząsteczki, po prostu w akcji "Stream particles from an emitter" ustawiamy typ emitera i emitowanej cząsteczki oraz liczbę cząsteczek (jeśli chcemy, aby cząsteczka była emitowana rzadziej niż co krok, ustawiamy, rzecz jasna, wartość ujemną).  
 
12. Jeśli chcemy, aby emiter ciągle wysyłał cząsteczki, po prostu w akcji "Stream particles from an emitter" ustawiamy typ emitera i emitowanej cząsteczki oraz liczbę cząsteczek (jeśli chcemy, aby cząsteczka była emitowana rzadziej niż co krok, ustawiamy, rzecz jasna, wartość ujemną).  
 
+
{{grafikax|opis=|pozycja=|adres=http://img154.imageshack.us/img154/8339/part12uw2.png}}
 
13. Może się też zdarzyć, że nie chcemy, aby cząsteczki były ciągle wysyłane, tylko wtedy, kiedy np. wciska się odpowiedni przycisk. Co wtedy robimy? Po prostu kiedy np. dany przycisk jest wciśnięty, aktywujemy akcję "Burst a number of particles from the emitter". Tam ustawiamy emiter, typ cząsteczek i ich liczbę (wartość ujemna to prawdopodobieństwo emisji 1/wartość bezwzględna).  
 
13. Może się też zdarzyć, że nie chcemy, aby cząsteczki były ciągle wysyłane, tylko wtedy, kiedy np. wciska się odpowiedni przycisk. Co wtedy robimy? Po prostu kiedy np. dany przycisk jest wciśnięty, aktywujemy akcję "Burst a number of particles from the emitter". Tam ustawiamy emiter, typ cząsteczek i ich liczbę (wartość ujemna to prawdopodobieństwo emisji 1/wartość bezwzględna).  
  
 
==Usuwanie emitera, cząsteczek, systemu==
 
==Usuwanie emitera, cząsteczek, systemu==
 
+
{{grafikax|opis=|pozycja=|adres=http://img133.imageshack.us/img133/7267/part11rt1.png}}
 
14. Kiedy np. po uruchomienu przełącznika chcemy, by zaprzestano emisji? Po prostu ustawiamy zdarzenie "Destroy an emitter".  
 
14. Kiedy np. po uruchomienu przełącznika chcemy, by zaprzestano emisji? Po prostu ustawiamy zdarzenie "Destroy an emitter".  
 
+
{{grafikax|opis=|pozycja=|adres=http://img154.imageshack.us/img154/3017/part3sy5.png}}
 
15. Jeśli chcesz, by planszę wyczyszczono ze wszystkich cząsteczek, ustaw zdarzenie: "Clear all particles in the system".  
 
15. Jeśli chcesz, by planszę wyczyszczono ze wszystkich cząsteczek, ustaw zdarzenie: "Clear all particles in the system".  
 
+
{{grafikax|opis=|pozycja=|adres=http://img154.imageshack.us/img154/6639/part2ib7.png}}
 
16.Jeśli chcesz, aby usunięto system, ustaw "Destroy the particle system".  
 
16.Jeśli chcesz, aby usunięto system, ustaw "Destroy the particle system".  
  
 +
==Zakończenie==
 
I to by było na tyle. Przeczytałeś? Niesamowite! Zrozumiałeś? Moje szczere gratulacje! Samemu coś zrobiłeś? Niemożliwe!!!   
 
I to by było na tyle. Przeczytałeś? Niesamowite! Zrozumiałeś? Moje szczere gratulacje! Samemu coś zrobiłeś? Niemożliwe!!!   
  
Linia 55: Linia 57:
 
*[http://www.romanx.kosa.net.pl/nukebrds/phpbb/viewtopic.php?t=1028 http://www.romanx.kosa.net.pl/nukebrds/phpbb/viewtopic.php?t=1028]
 
*[http://www.romanx.kosa.net.pl/nukebrds/phpbb/viewtopic.php?t=1028 http://www.romanx.kosa.net.pl/nukebrds/phpbb/viewtopic.php?t=1028]
  
[[Kategoria:Artykuły]]
+
[[Kategoria:Kursy i tutoriale]]
[[Kategoria:Artykuły dla użytkowników GM]]
+
[[Kategoria:Kursy i tutoriale dla użytkowników GM]]
 +
[[Kategoria:Artykuły dla średniozaawansowanych]]

Aktualna wersja na dzień 12:48, 12 lis 2006

Autor.jpg
Autorem tego artykułu jest
copperdragon

Artykuł ten omawia zagadnienia, związane z wykorzystaniem efektów cząsteczkowych w Game Makerze.
Uwaga! Korzystanie z tych opcji wymaga zarejestrowanego GM'a!

Wstęp

Ej, ej, spokojnie, nie ma tu nic o partycjach systemowych czy czymś takim. Ponieważ miałem problemy ze znalezieniem adekwatnego tłumaczenia tytułu, przyjmijmy, że są to cząsteczki (moim zdaniem to tłumaczenie jest najbardziej pasujące w tym kontekście). Omówię po kolei co i jak, posługując się przykładem miotacza ognia. Warto wspomnieć, że cząsteczki są znacznie mniej pamięciożerne niż zwykłe efekty czy (o zgrozo!) obiekty.

Obrazki przy numerach punktów oznaczają, jaki obrazek ma akcja, której dotyczy dany punkt. Wszystkie te akcje są w zakładce extras.

Ustawienie początkowe

1. Stwórz obiekt o nazwie dowolnej (np. miotacz).

2. Wstaw warunek, w którym poustawiasz potrzebne wartości, np. Create.

part1ud8.png

3. W tym warunku wstaw zdarzenie "Create particle system" (znajdziesz je w zakładce "extras"), i ustaw głębokość (określa ona, czy efekt będzie na wierzchu, czy pod spodem względem innych obiektów).

Definiowanie efektu

part4rv7.png

4. Następnie zdefiniuj odpowiedni efekt. Będzie to wymagało kilku zdarzeń. Najpierw wstaw "Create particle type" i ustaw typ, do którego efekt jest przypisany (można mieć w sumie 16 typów). Następnie wybierz kształt (np. explosion albo smoke) bądź odpowiedniego sprite'a.

part4rv7.png

5. W tym samym zdarzeniu wprowadź jeszcze 3 wartości: min size, czyli najmniejsza wielkość, którą można wylosować, max size, czyli największa wielkość, którą można wylosować, oraz size increment, czyli wzrost efektu (zalecane wartości ułamkowe). Jeśli chcesz, żeby z upływem czasu efekt się zmniejszał, nic prostszego: wystarczy dodać minus przed wartością liczbową (opisanym tutaj wartościom można np. przypisać 0.1, 0.1, 0.05).

part5ou7.png

6. Teraz czas na ustawianie koloru. Tutaj również wybieramy typ, do którego jest kolor przypisany. Następnie wybieramy rodzaj kolorowania: albo losowany jest kolor z gradientu pomiędzy dwoma wybranymi (mixed), albo pierwszy kolor przechodzi w drugi (change, przydatny np. przy miotaczach ognia ). Potem wybieramy dwa kolory (np. żółty i czerwony). Pamiętaj, że jeśli używasz rodzaju kolorowania "change", to należy pamiętać o właściwej kolejności.

part5ou7.png

7. W tym samym zdarzeniu oprócz koloru możemy wybrać nieprzezroczystość, czyli znana wielu osobom wartość alpha. Są dwie wartości: start alpha i end alpha. Określają one, jak nieprzezroczysty jest obiekt na początku i na końcu. Jeśli obiekt ma nie zmieniać przezroczystości, obie te wartości powinny być takie same. (jeśli chcesz, aby na początku obiekt z czasem zanikał, w start alpha wpisz 1, a w end alpha wpisz 0).

part6pw1.png

8. Teraz czas na ustawienie "życia" cząsteczek danego typu. O co chodzi z tym życiem? Ile czasu cząsteczka będzie istniała, zanim zniknie. Jak można przewidzieć, wartość ta losowana jest z przedziału określanego przez użytkownika (wiecie, jak to się będzie nazywa? Że jest to min life i max life? Cóż za zbieg okoliczności). Domyślnie obie te wartości to 50.

part7wj6.png

9. Kolejna sprawa: ustawianie, jak efekt będzie się poruszał. Najpierw ustawiamy minimalną i maksymalną prędkość (np. 2 i 3). Potem dobieramy odpowiedni przedział kierunków (np. -10 i 10). Potem ustawiamy hamowanie (jeśli wartość będzie ujemna, wtedy cząsteczka będzie przyspieszała). Można tu ustawić np. -0.1. Na koniec w kolejnym zdarzeniu dobieramy grawitację, a ściślej mówiąc jej kierunek i siłę. (ale po kiego grawitacja w miotaczu, to ja nie wiem )

part9mj4.png

10. Teraz przychodzi czas na tworzenie kolejnych cząsteczek. O so tu chozi? Otóż pewna cząsteczka może się rozmnożyć, albo podczas lotu, albo podczas "śmierci". Wystarczy ustawić typ tworzonej cząsteczki w step type (dla tworzenia co jakiś czas) i death type (dla tworzenia po "śmierci"), a następnie ilość w step number (ile cząsteczek ma być tworzonych co krok ; jeśli ta wartość będzie ujemna, cąsteczki będą tworzyły się co wartość bezwzględną kroków) albo death number (ile cząsteczek ma być tworzonych podczas śmierci). Pozwala to na tworzenie bardzo ciekawych efektów (choć do miotacza raczj nie powinno się tego używać.

Ustawianie emiterów

part10jr1.png

11. Definiowanie efektów mamy juz za sobą, to teraz czas zrobić emiter. Bierzemy więc zdarzenie "Create emitter" i ustawiamy numerek emitera (jeden z 8), kształt oraz wymiary. Po co ten kształt i wymiary? Otóż emiter może losować miejsce, z którego tworzy cząsteczkę. Miejsce to musi się znajdować w polu emitera. Natomiast pole emitera to może być prostokąt, romb (tutaj: diament), elipsa lub linia. Nie trzeba chyba mówić, że figury te są rysowane z określonych punktów.(tak czy siak, miotacz powinien miotać z jednego miejsca, wtedy x/y min i x/y max ustawiamy jako równe).

part13gn6.png

12. Jeśli chcemy, aby emiter ciągle wysyłał cząsteczki, po prostu w akcji "Stream particles from an emitter" ustawiamy typ emitera i emitowanej cząsteczki oraz liczbę cząsteczek (jeśli chcemy, aby cząsteczka była emitowana rzadziej niż co krok, ustawiamy, rzecz jasna, wartość ujemną).

part12uw2.png

13. Może się też zdarzyć, że nie chcemy, aby cząsteczki były ciągle wysyłane, tylko wtedy, kiedy np. wciska się odpowiedni przycisk. Co wtedy robimy? Po prostu kiedy np. dany przycisk jest wciśnięty, aktywujemy akcję "Burst a number of particles from the emitter". Tam ustawiamy emiter, typ cząsteczek i ich liczbę (wartość ujemna to prawdopodobieństwo emisji 1/wartość bezwzględna).

Usuwanie emitera, cząsteczek, systemu

part11rt1.png

14. Kiedy np. po uruchomienu przełącznika chcemy, by zaprzestano emisji? Po prostu ustawiamy zdarzenie "Destroy an emitter".

part3sy5.png

15. Jeśli chcesz, by planszę wyczyszczono ze wszystkich cząsteczek, ustaw zdarzenie: "Clear all particles in the system".

part2ib7.png

16.Jeśli chcesz, aby usunięto system, ustaw "Destroy the particle system".

Zakończenie

I to by było na tyle. Przeczytałeś? Niesamowite! Zrozumiałeś? Moje szczere gratulacje! Samemu coś zrobiłeś? Niemożliwe!!!

A teraz, żeby sprawdzić, czy na pewno wszystko zrozumiałeś, spróbuj (przy pomocy przypisów) zrobić taki efekt miotacza. Jeśli wychodzi ci coś takiego, gratuluję! Już znasz podstawy tworzenia efektów przy pomocy cząsteczek.

Źródło