Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 9.10.2010 Ostrzeżenie: (0%)
|
Witajcie,
piszę w canvas grę na systemy mobilne korzystając z Apache Cordova. Mam na planszy koło puste w środku, taki jakby pierścień, w którym są kulki. Gdy gracz kliknie na dowolną kulkę i zacznie przesuwać myszkę (lub palcem po ekranie), to koło razem z kulkami ma się obracać, podążać za palcem/myszą. Już napisałem kod za to odpowiedzialny, wszystko działa idealnie, ale niestety tylko na kompie. Komórka nie nadąża i przy szybkim obracaniu jest bardzo duży brak płynności. Mój kod działa tak: gdy wykryjemy ruch myszy/palca przy wciśniętej myszy, pobieramy współrzędne dotknięcia/myszy i obliczamy kąt. następnie rysujemy w canvasie tło, aby zmazać poprzednie kule, po czym rysujemy kule od nowa, ale zaczynając od wyliczonego kąta. Nawet zmodyfikowałem kod w ten sposób, żeby kąty zokrąglać do pełnych stopni, i kulki są renderowane co 1 stopień. Ale dalej nie jest płynnie, da się to jeszcze jakoś zoptymalizować, bo już nie mam pomysłu? Mam nadzieję, że jednak uda się to z Cordovą, bo nauka natywnego programowania to kolejna książka do przeczytania :/ |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 205 Pomógł: 43 Dołączył: 5.03.2012 Ostrzeżenie: (0%)
|
Moje sugestie są takie:
- "zcacheować" pewne zmienne, które są obliczane przy każdym wykonaniu funkcji lub wielokrotnie podczas jednego wykonania, czyli np, zamiast pisać:
To napisać zmienne:
I używać tych zmiennych bezpośrednio w kodzie, później. Druga sprawa, unikać "if" -ów. Czyli zamiast pisać:
To napisać instrukcje łączne:
Co do funkcji trygonometrycznych: można spróbować używać tablic trygonometrycznych, możliwe, że taka optymalizacja coś da. W ostateczności warto spróbować, więcej do poczytania w temacie http://jfdube.wordpress.com/2011/12/06/tri...bles-revisited/ To prawdopodobnie i tak nie wiele da. W ostateczności można by spróbować stworzyć jakiś mechanizm, który reaguje na zdarzenia w regularnych odstępach czasu. Wtedy myślę, że aplikacja troche by skakała ale nie chodziła powoli. |
|
|
|
bpawel10 [Canvas] Optymalizacja kodu obracającego koło z kulkami 27.03.2014, 22:33:35
PrinceOfPersia możesz wrzucić cały kod odpowiedzialny za obsluge ... 27.03.2014, 23:56:43
bpawel10 [HTML] pobierz, plaintext function inputdown... 28.03.2014, 00:03:58
#luq Optymalizacja dla rysowanie na canvasie która może... 3.04.2014, 19:08:52 ![]() ![]() |
|
Aktualny czas: 26.07.2026 - 06:17 |