NukeBoards

Pomoc - [TGF2] Sortowanie bez rozszerzeń?

Mefisto - 01-06-2012, 19:33
: Temat postu: [TGF2] Sortowanie bez rozszerzeń?
Jak w temacie, można coś takiego osiągnąć?

Potrzebuję tego, aby zrobić wyszukiwanie najbliższego npc od gracza. W zmiennej B zapisywana jest odległość między npc a graczem, jednak nie potrafię zweryfikować który z npc ma najmniejszą zmienną B. Zaznaczam, że używam TGF2 w wersji Newgrounds.

To co udało mi się zrobić:

-na starcie npc mają przypisany id w zmiennej A(spread value)
-zawsze: startuje pętla "distance" tyle razy ile jest npc`ów
-podczas działania pętli w zmiennej B npc`ów zapisuję się ich odległość od gracza
-i tutaj się zatrzymałem...

Próbowałem załatwić to obiektem listy, ale bez powodzenia. Jeśli macie jakieś pomysły jak to rozwiązać, albo macie jakiś inny patent na znajdywanie najbliższego obiektu to proszę piszcie!
Wackyjackie - 01-06-2012, 19:50
:
Obiekty listy są wolne, nie należy ich kiedykolwiek używać, potrafią masakrycznie zwolnić działanie aplikacji, szczególnie flashowej :P .
Pętle we flashu też niewskazane, ale to tak na marginesie.

Skoro już masz bazę odległości od gracza, to wystarczy w pętli zapisywać do innej zmiennej X (pojedynczego obiektu / globalnej!) wartość B (odległość) aktualnie sprawdzanego aktywnego z warunkiem ustawiania X na wartość B, jedynie jeśli X jest większe od B.

I dodajesz zdarzenie Pick Objects which Alterable Value B = ta wartość X --> i co chcesz zrobić z obiektem (zapewne nawiązać dialog ;>).
Minty - 01-06-2012, 20:09
:
Mefisto napisał/a:
Próbowałem załatwić to obiektem listy, ale bez powodzenia.

A co jeśli na listę wsadzisz x+10000 zamiast x? Wtedy zamiast:

Kod:
1
10
2

Będzie:

Kod:
10001
10002
10010

Wackyjackie napisał/a:
Obiekty listy są wolne

W sumie nie wiem, ale co jak się je ukryje? Sortowanie always byłoby straszne, ale raz na np. pół sekundy nie powinno być tak tragicznie.
Wackyjackie - 01-06-2012, 20:22
:
Ukrytych nie testowałem - wolę tablicę wsadzić, albo odpowiednik wbudowanej listy (jest "Internal List Object" i polski "List of Numbers").

Robiłem sobie ostatnio z dwóch list debuggery. W pętli puszczanej zawsze 9 razy, wywalałem na ekran zawartość tablicy, dla obu list w tej samej pętli. Bez nich - 450-500FPS. Po ich zastosowaniu, FPSy spadały czasami nawet poniżej 50. Dlatego im już kompletnie nie ufam.

//Napisałem to jak połamany, nie wiem ile razy musiałem edytować ^^ '.
Mefisto - 02-06-2012, 10:31
:
Wackyjackie napisał/a:
Skoro już masz bazę odległości od gracza, to wystarczy w pętli zapisywać do innej zmiennej X (pojedynczego obiektu / globalnej!) wartość B (odległość) aktualnie sprawdzanego aktywnego z warunkiem ustawiania X na wartość B, jedynie jeśli X jest większe od B.


Wpadłem na to samo, ale nie wiem jak to w praktyce zrealizować :/

RomanX napisał/a:
A co jeśli na listę wsadzisz x+10000 zamiast x? Wtedy zamiast:

Kod:
1
10
2

Będzie:

Kod:
10001
10002
10010


Ok, ale co to zmieni w moim przypadku?
Minty - 02-06-2012, 12:33
:
Cytat:
Próbowałem załatwić to obiektem listy, ale bez powodzenia.

Myślałam, że w tym problem. Nie wiesz, jak powiązać wartości z obiektami? Dodaj do ciągu jeszcze fixed value, jeśli dasz na końcu, to nie wpłynie to na wynik sortowania, a potem używaj warunku pick object by fixed value.
Czy o co chodzi?
Mefisto - 02-06-2012, 14:19
:
Nie wiem jak dodać do listy zmienną B wszystkich npc`ów. Jak uruchamiam pętlę np. "sort" tyle razy ile jest obiektów i daję akcję że podczas działania pętli do listy dodaje się linia z wartością B tylko ostatniego utworzonego npc. Dodawałem zdarzenie loop index=zmienna A npc(zmienna A to identyfikator), ale to nic nie pomogło.