uncuncunc
1.11.2012, 14:41:00
Czy canvas ma możliwość odświeżania obrazu?
http://jsfiddle.net/jsexample/djPhG/1Chciałbym aby nie było tego czarnego tła, tylko sam efekt ognia na tym tle.
HgReed
1.11.2012, 14:46:53
Przy każdej zmianie na canvasie wyczyść go całego. Potem narysuj tło i wrzuć ogień.
uncuncunc
1.11.2012, 14:50:47
Cytat(HgReed @ 1.11.2012, 14:46:53 )

Przy każdej zmianie na canvasie wyczyść go całego. Potem narysuj tło i wrzuć ogień.
Nie mogę, ponieważ tło z założenia ma być dynamiczne. A "czyszczenie" nic nie daje, powstaje zapętlenie i obraz nie znika a jest tylko dodawany.
HgReed
1.11.2012, 14:53:19
Canvas to *płótno* (z ang.), więc pomyśl - *nie da się* rysować 2 warstw na raz. Musisz rysować tło, potem efekty.
uncuncunc
1.11.2012, 14:57:34
Dlatego proszę o pomoc.
Czy jest możliwość w ogóle uzyskania takiego efektu ognia na tle przeźroczystym? "Tło" obecny obrazek nie wchodzi w grę sam w sobie, ponieważ może go w ogóle nie być, chodzi o sam efekt ognia, aby była możliwość np. jego przesuwania i żeby ogień był na każdym tle widoczny, bez znaczenia co będzie pod nim.
HgReed
1.11.2012, 15:00:30
To funkcja tego ognia dodaje czarną plamę. Musiałbyś "wyłuskać" sam ogień. Dużo roboty nie ma.
uncuncunc
1.11.2012, 15:05:02
Cytat(HgReed @ 1.11.2012, 15:00:30 )

To funkcja tego ognia dodaje czarną plamę. Musiałbyś "wyłuskać" sam ogień. Dużo roboty nie ma.
Tak jak pisałem, nie bardzo wiem jak
http://jsfiddle.net/jsexample/djPhG/2/ tylko to mi przychodzi do głowy, ale ten sposób nie czyści obiektu i powstałe płomienie nakładają się jeden na drugi.
Jest jakaś opcja do "oczyszczenia" ?
HgReed
1.11.2012, 15:12:34
Myślałem, że sam na to wpadniesz, ale dobra. Możesz nałożyć na siebie 2 canvasy - 1 z tłem, 2 z efektami - i czyścić tylko jeden.
uncuncunc
1.11.2012, 15:15:05
Pisałem. Nie wiem jak go wyczyścić. Jaką opcją?
HgReed
1.11.2012, 15:17:20
uncuncunc
1.11.2012, 15:30:54
Dzięki. kombinuję dalej... jednak obojętnie gdzie bym go nie dodał (renderowanie) to obraz się nie zapętla..
http://jsfiddle.net/jsexample/djPhG/3/
HgReed
1.11.2012, 15:34:30
W skrócie:
- w HTML'u wszystko, co musisz zrobić to 2x canvas z id odpowiednio "game" i "fx" (na przykład)
- w JS'ie zrobić pętlę, która będzie rysowała tło w "game" (tło = obrazek) i ogień na "fx"
- pętla kończąc się, ma wyczyścić oba canvas'y
Wszystko.
uncuncunc
1.11.2012, 15:36:59
Tylko że tłem ma być cała strona, więc raczej jej w 2 canvas nie umieszczę.
HgReed
1.11.2012, 15:54:31
Oba canvasy na sobie (margin i padding 0) rozciągnięte na ekran (width i heigth 100%).
uncuncunc
1.11.2012, 16:00:14
Nie rozumiesz. Popatrz na to
http://jsfiddle.net/jsexample/djPhG/4/ Jest tylko 1 canvas i chodzi o odświeżanie tego efektu i tylko to. To co jest pod nim może być dynamiczne, zmieniać się na tysiąc sposobów, a efekt ognia ma być efektem ognia, bez znaczenia na jakim tle się obecnie znajduje, czy jest to możliwe?
HgReed
1.11.2012, 16:01:04
Właśnie NIE jest, a ja podaję Ci sposób na to.
uncuncunc
1.11.2012, 16:03:43
To na cholerę wymyślono ten canvas jak nie można zrobić na nim prostego efektu?

Twój sposób nie zadziała, jak zrobię 2 obiekt canvas, to zablokuje tym samym możliwość klikania na stronie w linki i dostęp do treści.
HgReed
1.11.2012, 16:06:04
Temat skończony, ale... Możesz przekazywać event'y z warstwy fx do game.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.